Bölge başına en çok madalya alan sporcu
Bu egzersizdeki hedefin, her bir bölge için en çok madalya alan sporcuyu göstermek. Bu raporu kurmak için, her satırı artan bir tam sayıyla numaralandıran ROW_NUMBER() window fonksiyonundan yararlanman gerekiyor; ilk satır 1, ikinci satır 2 şeklinde devam eder.
Bu window fonksiyonunun söz dizimi ROW_NUMBER() OVER (PARTITION BY field ORDER BY field) şeklindedir. İlk fonksiyonun içinde herhangi bir argüman olmadığını fark et.
Doğru kurulduğunda, row_num = 1 o bölgedeki en çok madalya alan sporcuyu temsil eder. Birden fazla sporcunun toplamı aynıysa, bu sporculardan herhangi biri en üst sonuç olarak görünebilir. Bir window hesaplamasını HAVING veya WHERE ifadesi içinde kullanamayacağını unutma; filtrelemek için bir alt sorgu kullanman gerekecek.
E:R Diagramı referans alabilirsin. Null işlemeden kaçınmak için summer_games_clean kullanacağız.
Bu egzersiz
SQL ile Raporlama
kursunun bir parçasıdırUygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
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 ____;