พลิกผลลัพธ์ด้วย 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
___ ___ ___;