शुरू करेंमुफ़्त में शुरू करें

कई देशों के एथलीट्स की रैंकिंग

पिछले अभ्यास में, आपने RANK का उपयोग करके एथलीट्स के एक समूह को रैंक दी थी। लेकिन वास्तविक डेटा में, अक्सर आपके डेटा के भीतर कई समूह होते हैं। यदि आप अपने डेटा को partition नहीं करते, तो एक समूह के मान दूसरे समूहों की रैंकिंग को प्रभावित करेंगे।

साथ ही, RANK एक जैसे मानों पर नंबर छोड़ देता है, जबकि रैंक देने का अधिक स्वाभाविक तरीका यह है कि नंबर न छोड़े जाएँ। यदि दो देश दूसरे स्थान पर बराबर हैं, तो ज़्यादातर लोग उसके बाद वाले देश को तीसरे स्थान पर मानते हैं.

यह अभ्यास पाठ्यक्रम का हिस्सा है

PostgreSQL Summary Stats और Window Functions

पाठ्यक्रम देखें

अभ्यास निर्देश

  • प्रत्येक देश के एथलीट्स को उनके जीते हुए मेडल्स की गिनती के आधार पर रैंक करें — जितनी अधिक गिनती, उतनी ऊँची रैंक — और एक जैसे मानों के मामले में नंबर न छोड़ें.

इंटरैक्टिव व्यावहारिक अभ्यास

इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।

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;
कोड संपादित करें और चलाएँ