开始使用免费开始使用

按获得奖牌数为运动员排名

在第 1 章中,您使用过 ROW_NUMBER 按授予的奖牌数为运动员排序。然而,ROW_NUMBER 会为奖牌数相同的运动员分配不同的编号,因此它并不是一个有用的排名函数;如果两位运动员获得的奖牌数相同,他们应当拥有相同的名次。

本练习是课程的一部分

PostgreSQL 汇总统计与窗口函数

查看课程

练习说明

  • 按每位运动员获得的奖牌数进行排名——数量越多,名次越高——当数值相同时,应给出相同的名次编号。

交互式实操练习

通过完成这段示例代码来试试这个练习。

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;
编辑并运行代码