Clasificación de atletas de varios países
En el ejercicio anterior, has utilizado RANK
para asignar clasificaciones a un grupo de deportistas. Sin embargo, en los datos del mundo real, a menudo encontrarás numerosos grupos dentro de tus datos. Si no divides los datos, los valores de un grupo influirán en la clasificación de los demás.
Además, mientras que RANK
omite números en caso de valores idénticos, la forma más natural de asignar clasificaciones es no omitir números. Si dos países están empatados en el segundo puesto, la mayoría de la gente considera que el país que les sigue es el tercero.
Este ejercicio forma parte del curso
Estadísticas de resumen y funciones de ventana de PostgreSQL
Instrucciones de ejercicio
- Clasifica a los atletas de cada país por el número de medallas que han ganado -cuanto mayor sea el número, mayor será la clasificación- sin omitir números en caso de valores idénticos.
Ejercicio interactivo práctico
Pruebe este ejercicio completando este código de muestra.
WITH Athlete_Medals AS (
SELECT
Country, Athlete, COUNT(*) AS Medals
FROM Summer_Medals
WHERE
Country IN ('JPN', 'KOR')
AND Year >= 2000
GROUP BY Country, Athlete
HAVING COUNT(*) > 1)
SELECT
Country,
-- Rank athletes in each country by the medals they've won
___,
___ OVER (PARTITION BY ___
ORDER BY Medals DESC) AS Rank_N
FROM Athlete_Medals
ORDER BY Country ASC, RANK_N ASC;