สมมติว่าต้องการแสดงอันดับของพนักงานตามเงินเดือน โดยไม่ต้องการให้อันดับข้ามเลขเมื่อมีค่าเงินเดือนเท่ากัน ควรใช้ฟังก์ชันใด

RANK() OVER (ORDER BY เงินเดือน DESC)
NTILE(5) OVER (ORDER BY เงินเดือน DESC)
ROW_NUMBER() OVER (ORDER BY เงินเดือน DESC)
DENSE_RANK() OVER (ORDER BY เงินเดือน DESC)

เฉลยอธิบาย

DENSE_RANK() ให้อันดับโดยไม่ข้ามเลข เมื่อมีค่าเท่ากันจะได้อันดับเดียวกัน และอันดับถัดไปจะต่อเนื่อง เช่น 1,1,2,3 ส่วน A (ROW_NUMBER) ให้เลขลำดับไม่ซ้ำกัน, B (RANK) จะข้ามอันดับเมื่อมีค่าเท่ากัน เช่น 1,1,3,4 และ D (NTILE) แบ่งข้อมูลเป็นกลุ่มเท่าๆ กัน

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

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