Cel mai medaliat atlet per regiune
Scopul acestui exercițiu este să afișezi cel mai medaliat atlet per regiune. Pentru a configura acest raport, vei folosi funcția de fereastră ROW_NUMBER(), care numerotează fiecare rând ca un număr întreg incremental, unde primul rând este 1, al doilea este 2 și așa mai departe.
Sintaxa pentru această funcție de fereastră este ROW_NUMBER() OVER (PARTITION BY field ORDER BY field). Observă că nu există niciun argument în interiorul funcției inițiale.
Atunci când este configurată corect, un row_num = 1 reprezintă cel mai medaliat atlet din acea regiune. Dacă mai mulți atleți au același total, oricare dintre atleții la egalitate poate apărea ca prim rezultat. Reține că nu poți folosi un calcul de fereastră într-o instrucțiune HAVING sau WHERE, prin urmare va trebui să folosești o subinterogare pentru filtrare.
Poți consulta Diagrama E:R. Vom folosi summer_games_clean pentru a evita gestionarea valorilor nule.
Acest exercițiu face parte din cursul
Raportare în SQL
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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 ____;