Classificare gli atleti per medaglie vinte
Nel capitolo 1 hai usato ROW_NUMBER per classificare gli atleti in base alle medaglie assegnate. Tuttavia, ROW_NUMBER attribuisce numeri diversi ad atleti con lo stesso numero di medaglie, quindi non è una funzione di ranking utile; se due atleti hanno vinto lo stesso numero di medaglie, dovrebbero avere lo stesso rango.
Questo esercizio fa parte del corso
Statistiche riepilogative e funzioni finestra in PostgreSQL
Istruzioni dell'esercizio
- Classifica ogni atleta in base al numero di medaglie vinte: più alto è il conteggio, più alto è il rango, assegnando lo stesso numero in caso di valori identici.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
WITH Athlete_Medals AS (
SELECT
Athlete,
COUNT(*) AS Medals
FROM Summer_Medals
GROUP BY Athlete)
SELECT
Athlete,
Medals,
-- Rank athletes by the medals they've won
___ OVER (ORDER BY ___ DESC) AS Rank_N
FROM Athlete_Medals
ORDER BY Medals DESC;