Apa yang OVER di sini?
Window function memungkinkan Anda membuat RANK informasi berdasarkan variabel apa pun yang ingin Anda gunakan untuk mengurutkan data. Saat menyiapkannya, Anda perlu menentukan kolom/perhitungan yang ingin digunakan untuk menghitung peringkat. Ini dilakukan dengan menyertakan klausa ORDER BY di dalam klausa OVER(). Berikut contohnya:
SELECT
id,
RANK() OVER(ORDER BY home_goal) AS rank
FROM match;
Pada latihan ini, Anda akan membuat himpunan data pertandingan yang diberi peringkat berdasarkan liga mana yang, rata-rata, mencetak gol terbanyak dalam sebuah pertandingan.
Latihan ini adalah bagian dari kursus
Manipulasi Data di SQL
Petunjuk latihan
SELECTnama liga dan rata-rata total gol yang dicetak darileaguedanmatch.- Lengkapi window function sehingga menghitung
RANK()dari rata-rata gol yang dicetak di seluruh liga dalam basis data. - Urutkan peringkat
OVERrata-rata total gol kandang dan tandang yang dicetak.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
SELECT
-- Select the league name and average goals scored
___ AS league,
___(___ + ___.away_goal) AS avg_goals,
-- Rank each league over the average goals
___ ___(___ ___ AVG(___.home_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
ORDER BY ___;