สำหรับตาราง 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 ต้องการการจัดการพิเศษเพิ่มเติม