สำหรับตาราง orders ที่มีคอลัมน์ order_id, customer_id, amount, order_date ใน PostgreSQL คำสั่งใดถูกต้องเพื่อดึง 5 คำสั่งซื้อยอดสูงสุดเรียงตามจำนวนเงินจากมากไปน้อย?

SELECT TOP 5 * FROM orders ORDER BY amount DESC;
SELECT * FROM orders ORDER BY amount DESC LIMIT 5;
SELECT * FROM orders LIMIT 5 ORDER BY amount DESC;
SELECT * FROM orders WHERE ROWNUM <= 5 ORDER BY amount DESC;

เฉลยอธิบาย

ORDER BY amount DESC จัดยอดสูงสุดไว้ก่อน แล้ว LIMIT 5 จำกัดห้าแถว รูปแบบ LIMIT นี้ใช้ได้ใน PostgreSQL/MySQL ส่วน TOP เป็นรูปแบบของ SQL Server ตัวเลือก B ถูกต้องตามไวยากรณ์ MySQL และ PostgreSQL ตัวเลือก A ใช้ TOP ซึ่งเป็นไวยากรณ์ SQL Server ตัวเลือก C วางตำแหน่ง LIMIT ก่อน ORDER BY ซึ่งจะไม่ได้ผลตามที่ต้องการ ตัวเลือก D ใช้ ROWNUM ต้องการการจัดการพิเศษเพิ่มเติม

ข้อสอบอื่นในวิชาการใช้ภาษา SQL

ดูข้อสอบวิชานี้ทั้งหมด →