หากต้องการหาลูกค้าที่มีอายุน้อยกว่าค่าเฉลี่ยอายุของลูกค้าในเมืองเดียวกัน ควรใช้เทคนิคใด

GROUP BY เมือง และใช้ WHERE เพื่อกรอง
HAVING AVG(อายุ) เพื่อเปรียบเทียบ
WHERE อายุ < AVG(อายุ)
Correlated Subquery ที่คำนวณค่าเฉลี่ยต่อเมือง

เฉลยอธิบาย

Correlated subquery เป็นวิธีการที่เหมาะสมเพราะต้องเปรียบเทียบอายุของลูกค้าแต่ละคนกับค่าเฉลี่ยอายุในเมืองของตนเอง ตัวเลือก A ไม่สามารถใช้ฟังก์ชันรวมใน WHERE โดยตรง ตัวเลือก B ใช้ HAVING ซึ่งใช้สำหรับกลุ่ม ตัวเลือก D เชื่อม subquery กับเมืองของแถวภายนอก จึงคำนวณค่าเฉลี่ยที่ถูกกลุ่มสำหรับลูกค้าแต่ละราย

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

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