ลบข้อมูลซ้ำด้วย DISTINCT()
คุณต้องการทราบว่าเมืองใดอยู่ใกล้กับแผ่นดินไหวขนาด 8 ริกเตอร์ขึ้นไปมากที่สุด ข้อมูลนี้ดึงมาจากตาราง Earthquakes ได้ แต่การ query แบบธรรมดาจะคืนค่าแถวซ้ำ เนื่องจากบางเมืองเคยเกิดแผ่นดินไหวขนาด 8 ขึ้นไปมากกว่าหนึ่งครั้ง
ใช้ clause DISTINCT() เพื่อลบข้อมูลที่ซ้ำกันออก จากนั้นหาว่าแต่ละเมืองเคยเกิดแผ่นดินไหวขนาด 8 ขึ้นไปกี่ครั้ง
สังเกตว่าใช้ IS NOT NULL เนื่องจากแผ่นดินไหวหลายครั้งไม่ได้เกิดใกล้พื้นที่ชุมชน ซึ่งถือเป็นเรื่องโชคดี
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การปรับปรุงประสิทธิภาพคิวรีใน SQL Server
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
SELECT ___, -- Add the closest city
Country
FROM Earthquakes
WHERE Magnitude >= 8
AND NearestPop IS NOT NULL
ORDER BY NearestPop;