BaşlayınÜcretsiz başlayın

Birden fazla ülkeden sporcuları sıralama

Önceki egzersizde, bir grup sporcuyu sıralamak için RANK kullandın. Ancak gerçek dünyadaki verilerde, verilerinin içinde genellikle çok sayıda grup bulunur. Verini bölümlendirmezsen bir grubun değerleri diğerlerinin sıralamalarını etkiler.

Ayrıca, RANK aynı değerler olduğunda numaraları atlasa da, en doğal sıralama yöntemi numaraları atlamamaktır. İki ülke ikinciliği paylaşıyorsa, onlardan sonraki ülke çoğu kişi tarafından üçüncü kabul edilir.

Bu egzersiz, kursun bir parçasıdır

PostgreSQL Özet İstatistikler ve Pencere Fonksiyonları

Kursa Göz Atın

Egzersiz talimatları

  • Her ülkenin sporcularını kazandıkları madalya sayısına göre sırala — sayı arttıkça sıra da yükselsin — ve aynı değerler durumunda numaraları atlama.

Uygulamalı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

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;
Kodu Düzenle ve Çalıştır