Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQL सर्वर में RANK () का उपयोग कैसे करें

बदलें:

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 (लेनदेन-एसक्यूएल)

परिणाम सेट के विभाजन में पंक्तियों की रैंक लौटाता है, रैंकिंग में कोई अंतराल नहीं है। एक पंक्ति की रैंक एक से अधिक अलग-अलग रैंकों की संख्या होती है जो प्रश्न में पंक्ति से पहले आती हैं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SSMS परिणाम ग्रिड के लिए - CRLF कॉपी/पेस्ट में संरक्षित नहीं - कोई बेहतर तकनीक?

  2. SQL क्वेरी द्वारा किसी विशेष डेटाबेस के सभी तालिका नाम प्राप्त करें?

  3. मैं SQL सर्वर कनेक्शन स्ट्रिंग कैसे सेट कर सकता हूं?

  4. आप SQL सर्वर लेनदेन लॉग को कैसे साफ़ करते हैं?

  5. SQL Server 2008 और SQL Server 2008 R2 चलाने वाले उपयोगकर्ता ध्यान दें