เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

คิวรีแบบ UNION แล้วตามด้วย JOIN

เป้าหมายคือสร้างรายงานในรูปแบบเดิม ซึ่งประกอบด้วยฟิลด์ดังต่อไปนี้:

  • season ซึ่งแสดงค่า summer หรือ winter
  • country
  • events ซึ่งแสดงจำนวน event ที่ไม่ซ้ำกัน

ในแบบฝึกหัดนี้ ให้สร้างคิวรีโดยใช้แนวทาง UNION ก่อน แล้วจึง JOIN ซึ่งเมื่อใช้แนวทางนี้ จะต้องนำคิวรี UNION เริ่มต้นมาใช้เป็นซับคิวรี โดยซับคิวรีต้องครอบคลุม ทุกฟิลด์ ที่เกี่ยวข้อง รวมถึงฟิลด์ที่ใช้ใน join ด้วย

สามารถอ้างอิง E:R Diagram ได้ตลอดเวลา

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การรายงานผลด้วย SQL

ดูคอร์ส

คำแนะนำการฝึกหัด

  • ในซับคิวรี ให้สร้างคิวรีที่ดึงข้อมูล season, country_id และ event โดยรวมข้อมูลเกมฤดูร้อนและฤดูหนาวเข้าด้วยกันด้วย UNION ALL
  • ใช้ JOIN ร่วมกับ SELECT อีกชั้นเพื่อแสดงฟิลด์ season, country และจำนวน events ที่ไม่ซ้ำกัน
  • ใส่ฟิลด์ที่ไม่ได้ถูก aggregate ทั้งหมดลงใน GROUP BY
  • เรียงลำดับรายงานตาม events จากมากไปน้อย

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

-- Add outer layer to pull season, country and unique events
SELECT 
	____, 
    ____, 
    ____ AS events
FROM
    -- Pull season, country_id, and event for both seasons
    (SELECT 
     	____ AS season, 
     	____, 
     	____
    FROM ____
    ____
    SELECT 
     	____ AS season, 
     	____, 
     	____
    FROM ____) AS subquery
JOIN ____ AS c
ON ____
-- Group by any unaggregated fields
GROUP BY ____
-- Order to show most events at the top
ORDER BY ____;
แก้ไขและรันโค้ด