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ı
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;