Atlet paling berprestasi per wilayah
Tujuan Anda dalam latihan ini adalah menampilkan atlet paling berprestasi per wilayah. Untuk menyiapkan laporan ini, Anda perlu memanfaatkan fungsi window ROW_NUMBER(), yang memberi nomor pada setiap baris sebagai bilangan bulat yang bertambah, di mana baris pertama adalah 1, baris kedua 2, dan seterusnya.
Sintaks fungsi window ini adalah ROW_NUMBER() OVER (PARTITION BY field ORDER BY field). Perhatikan bahwa tidak ada argumen di dalam fungsi awalnya.
Jika disusun dengan benar, row_num = 1 merepresentasikan atlet paling berprestasi di wilayah tersebut. Jika ada beberapa atlet dengan total yang sama, salah satu dari atlet yang imbang itu dapat muncul sebagai hasil teratas. Perlu dicatat bahwa Anda tidak dapat menggunakan perhitungan window di dalam pernyataan HAVING atau WHERE, sehingga Anda perlu menggunakan subkueri untuk melakukan penyaringan.
Silakan merujuk ke Diagram E:R. Kita akan menggunakan summer_games_clean untuk menghindari penanganan null.
Latihan ini adalah bagian dari kursus
Pelaporan dengan SQL
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
SELECT
-- Query region, athlete_name, and total gold medals
____,
____ AS athlete_name,
____ AS total_golds,
-- Assign a regional rank to each athlete
____ AS row_num
FROM ____ AS s
JOIN ____ AS a
ON ____
JOIN ____ AS c
ON ____
GROUP BY ____;