การหาค่าอันดับ N สูงสุดด้วย ORDER BY DESC LIMIT OFFSET
เพื่อหาค่าที่มีค่าสูงสุดอันดับ 4 (Fourth Highest) เราเรียงลำดับจากมากไปน้อย (DESC) แล้วข้าม 3 แถวแรก (OFFSET 3) และ取 1 แถว (LIMIT 1)
สร้างตารางและเพิ่มข้อมูล
mysql> CREATE TABLE DemoTable (Amount INT);
Query OK, 0 rows affected (0.88 sec)
mysql> INSERT INTO DemoTable VALUES(980);
mysql> INSERT INTO DemoTable VALUES(670);
mysql> INSERT INTO DemoTable VALUES(890);
mysql> INSERT INTO DemoTable VALUES(995);
mysql> INSERT INTO DemoTable VALUES(198);
แสดงข้อมูลทั้งหมด
mysql> SELECT * FROM DemoTable;
ผลลัพธ์:
+--------+
| Amount |
+--------+
| 980 |
| 670 |
| 890 |
| 995 |
| 198 |
+--------+
5 rows in set (0.00 sec)
คำสั่งหาค่าอันดับ 4 สูงสุด
mysql> SELECT * FROM DemoTable ORDER BY Amount DESC LIMIT 1 OFFSET 3;
ผลลัพธ์:
+--------+
| Amount |
+--------+
| 670 |
+--------+
1 row in set (0.00 sec)
คำอธิบาย
ORDER BY Amount DESC: เรียง 995, 980, 890, 670, 198OFFSET 3: ข้าม 3 แถวแรก (995, 980, 890)LIMIT 1: 取แถวถัดไป 1 แถว → 670 (อันดับ 4)- รูปแบบเทียบเท่า:
LIMIT 3, 1(offset, row_count) - หากต้องการอันดับ N:
LIMIT 1 OFFSET N-1