बदलें:
RANK() OVER (PARTITION BY ContenderNum ORDER BY totals ASC) AS xRank
करने के लिए:
RANK() OVER (ORDER BY totals DESC) AS xRank
इस उदाहरण पर एक नज़र डालें:
एसक्यूएल फिडल डेमो
आप RANK (Transact-SQL) और DENSE_RANK (Transact-SQL) के बीच के अंतर को भी देखना चाहेंगे:
<ब्लॉकक्वॉट>रैंक (लेनदेन-एसक्यूएल)
यदि दो या दो से अधिक पंक्तियाँ एक रैंक के लिए टाई करती हैं, तो प्रत्येक बंधी हुई पंक्तियाँ समान रैंक प्राप्त करती हैं। उदाहरण के लिए, यदि दो शीर्ष सेल्सपर्सन का SalesYTD मान समान है, तो वे दोनों एक रैंक पर हैं। अगले उच्चतम सेल्सवाईटीडी वाले विक्रेता को तीसरे स्थान पर रखा गया है, क्योंकि दो पंक्तियाँ हैं जिन्हें उच्च रैंक दिया गया है। इसलिए, रैंक फ़ंक्शन हमेशा लगातार पूर्णांक नहीं लौटाता है।
DENSE_RANK (लेनदेन-एसक्यूएल)
परिणाम सेट के विभाजन में पंक्तियों की रैंक लौटाता है, रैंकिंग में कोई अंतराल नहीं है। एक पंक्ति की रैंक एक से अधिक अलग-अलग रैंकों की संख्या होती है जो प्रश्न में पंक्ति से पहले आती हैं।