ใช้ WHERE column NOT IN (SELECT MAX(column) FROM table) แล้ว ORDER BY DESC
สร้างตารางตัวอย่าง
mysql> CREATE TABLE DemoTable (
-> Amount INT
-> );
เพิ่มข้อมูลตัวอย่าง
mysql> INSERT INTO DemoTable VALUES(10), (20), (30), (40);
แสดงข้อมูล
mysql> SELECT * FROM DemoTable;
ผลลัพธ์:
+--------+ | Amount | +--------+ | 10 | | 20 | | 30 | | 40 | +--------+
คำสั่งเลือกยกเว้นค่าสูงสุด แล้วเรียงจากมากไปน้อย
mysql> SELECT * FROM DemoTable
-> WHERE Amount NOT IN (SELECT MAX(Amount) FROM DemoTable)
-> ORDER BY Amount DESC;
ผลลัพธ์ (ไม่มี 40, เรียง 30, 20, 10):
+--------+ | Amount | +--------+ | 30 | | 20 | | 10 | +--------+
คำอธิบาย: Subquery หา MAX(Amount) = 40 | NOT IN กรองทิ้ง 40 | ORDER BY DESC เรียงที่เหลือจากมากไปน้อย