Bắt đầu ngayBắt đầu miễn phí

Xếp hạng vận động viên theo số huy chương đạt được

Ở chương 1, bạn đã dùng ROW_NUMBER để xếp hạng vận động viên theo số huy chương được trao. Tuy nhiên, ROW_NUMBER gán các số thứ tự khác nhau cho những vận động viên có cùng số huy chương, nên nó không phù hợp để xếp hạng; nếu hai vận động viên có cùng số huy chương, họ nên có cùng hạng.

Bài tập này là một phần của khóa học

Thống kê tóm tắt và Window Functions trong PostgreSQL

Xem khóa học

Hướng dẫn bài tập

  • Xếp hạng từng vận động viên theo số huy chương họ đạt được — số huy chương càng nhiều thì hạng càng cao — và dùng cùng một thứ hạng cho các giá trị trùng nhau.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

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;
Chỉnh sửa và Chạy Mã