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

พลิกผลลัพธ์ด้วย OVER

ในแบบฝึกหัดที่ผ่านมา การจัดอันดับที่ได้จากคิวรีจะเรียงจากน้อยไปมาก หากเพิ่ม DESC เข้าไปใน window function จะได้การจัดอันดับที่เรียงจากมากไปน้อยแทน

SELECT 
    id,
    RANK() OVER(ORDER BY home_goal DESC) AS rank
FROM match;

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

การจัดการข้อมูลใน SQL

ดูคอร์ส

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

  • เลือก name ของลีกและค่าเฉลี่ยประตูรวมทั้งหมดที่ทำได้จากตาราง league และ match
  • เติม window function ให้สมบูรณ์เพื่อจัดอันดับแต่ละลีกจากค่าเฉลี่ยประตูสูงสุดไปต่ำสุด
  • ORDER คิวรีหลัก BY อันดับที่สร้างขึ้น

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

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

SELECT 
	-- Select the league name and average goals scored
	___ AS league,
    ___(___ + m.away_goal) AS avg_goals,
    -- Rank leagues in descending order by average goals
    ___ ___(___ ___ ___(___ + m.away_goal) ___) AS league_rank
FROM league AS l
LEFT JOIN match AS m 
ON l.id = m.country_id
WHERE m.season = '2011/2012'
GROUP BY l.name
-- Order the query by the rank you created
___ ___ ___;
แก้ไขและรันโค้ด