การกรองข้อมูลด้วย Subquery
อีกวิธีหนึ่งในการกรองข้อมูลจากตารางอื่นคือการใช้ subquery โดยมีขั้นตอนดังนี้
- สร้าง subquery ที่แสดงผลเป็นรายการข้อมูล
- ในคิวรีหลัก ให้เพิ่มคำสั่ง
WHEREที่อ้างอิงรายการดังกล่าว
เป้าหมายคือสร้างรายงานเดียวกับแบบฝึกหัดที่ผ่านมา ซึ่งมีลักษณะดังนี้
- คอลัมน์แรกคือ bronze_medals หรือจำนวน
bronzeทั้งหมด - คอลัมน์ที่สองคือ silver_medals หรือจำนวน
silverทั้งหมด - คอลัมน์ที่สามคือ gold_medals หรือจำนวน
goldทั้งหมด - แสดงเฉพาะข้อมูลจาก
summer_gamesเท่านั้น - กรองเฉพาะนักกีฬาที่มีอายุ 16 ปีหรือน้อยกว่า
ในแบบฝึกหัดนี้ ให้ใช้วิธี subquery
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การรายงานผลด้วย SQL
คำแนะนำการฝึกหัด
- สร้างคิวรีที่ดึงข้อมูล
bronze_medals,silver_medalsและgold_medalsทั้งหมดจากsummer_games - สร้าง subquery ที่แสดงผลนักกีฬาทุกคนที่มีอายุ 16 ปีหรือน้อยกว่า
- เพิ่มคำสั่ง
WHEREที่อ้างอิง subquery เพื่อกรองเฉพาะนักกีฬาที่มีอายุ 16 ปีหรือน้อยกว่า
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
-- Pull summer bronze_medals, silver_medals, and gold_medals
SELECT
____,
____,
____
FROM ____
-- Add the WHERE statement below
WHERE ____ IN
-- Create subquery list for athlete_ids age 16 or below
(SELECT ____
FROM ____
WHERE ____);