खोज…


वाक्य - विन्यास

  • DENSE_RANK () OVER ([<विभाजन_by_clause>] <order_by_clause>)
  • RANK () OVER ([part_by_clause] order_by_clause)

पैरामीटर

तर्क विवरण
<partition_by_clause> FROM क्लॉज द्वारा उत्पादित परिणाम को उन विभाजनों में विभाजित करता है जिनमें DENSE_RANK फ़ंक्शन लागू होता है। सिंटैक्स PARTITION BY पार्टीशन के लिए, OVER Clause (Transact-SQL) देखें
<order_by_clause> उस क्रम को निर्धारित करता है जिसमें DENSE_RANK फ़ंक्शन विभाजन में पंक्तियों पर लागू होता है।
OVER ( [ partition_by_clause ] order_by_clause) part_by_clause, FROM क्लॉज द्वारा निर्मित परिणाम सेट को उन partition_by_clause विभाजित करता है जिनमें फ़ंक्शन को लागू किया जाता है। यदि निर्दिष्ट नहीं है, तो फ़ंक्शन एक समूह के रूप में सेट किए गए क्वेरी परिणाम की सभी पंक्तियों को मानता है। आदेश लागू होने से पहले order_by_clause डेटा के क्रम को निर्धारित करता है। Order_by_clause की आवश्यकता है। RANK फ़ंक्शन के लिए OVER क्लॉज की <rows or range clause> को निर्दिष्ट नहीं किया जा सकता है। अधिक जानकारी के लिए, OVER Clause (Transact-SQL) देखें

टिप्पणियों

यदि एक ही विभाजन में दो या दो से अधिक पंक्तियाँ एक रैंक के लिए बाँधती हैं, तो प्रत्येक बंधी हुई पंक्तियाँ समान रैंक प्राप्त करती हैं। उदाहरण के लिए, यदि दो शीर्ष सेल्सपर्सन का SalesYTD मान समान है, तो वे दोनों एक स्थान पर हैं। अगले उच्चतम SalesYTD के साथ विक्रेता नंबर दो पर है। यह इस पंक्ति से पहले आने वाली अलग-अलग पंक्तियों की संख्या से एक अधिक है। इसलिए, DENSE_RANK फ़ंक्शन द्वारा दिए गए नंबर में अंतराल नहीं होते हैं और हमेशा लगातार रैंक होते हैं।

संपूर्ण क्वेरी के लिए उपयोग किया जाने वाला क्रम क्रम उस क्रम को निर्धारित करता है जिसमें पंक्तियाँ एक परिणाम में दिखाई देती हैं। इसका तात्पर्य यह है कि पंक्ति क्रमांक एक की संख्या विभाजन में पहली पंक्ति नहीं है।

DENSE_RANK nondeterministic है। अधिक जानकारी के लिए, नियतात्मक और Nondeterministic कार्य देखें

पद()

RANK () विभाजित विभाजन कॉलम के परिणाम सेट में प्रत्येक पंक्ति के रैंक को लौटाता है।

जैसे:

Select Studentid,Name,Subject,Marks,
RANK() over(partition by name order by Marks desc)Rank
From Exam
order by name,subject

   Studentid    Name    Subject    Marks    Rank

    101         Ivan    Maths       70       2
    101         Ivan    Science     80       1
    101         Ivan    Social      60       3
    102         Ryan    Maths       60       2
    102         Ryan    Science     50       3
    102         Ryan    Social      70       1
    103         Tanvi   Maths       90       1
    103         Tanvi   Science     90       1
    103         Tanvi   Social      80       3

DENSE_RANK ()

RANK के समान ()। यह बिना किसी अंतराल के रैंक लौटाता है:

Select  Studentid, Name,Subject,Marks,
DENSE_RANK() over(partition by name order by Marks desc)Rank
From Exam
order by name

Studentid    Name    Subject    Marks    Rank
101          Ivan    Science    80       1
101          Ivan    Maths      70       2
101          Ivan    Social     60       3
102          Ryan    Social     70       1
102          Ryan    Maths      60       2
102          Ryan    Science    50       3
103          Tanvi   Maths      90       1
103          Tanvi   Science    90       1
103          Tanvi   Social     80       2


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow