SQL Row_Number () फ़ंक्शन संबंधित रिकॉर्ड सेट में डेटा पंक्तियों को क्रम संख्या को सॉर्ट करने और असाइन करने के लिए है। तो यह संख्या पंक्तियों के लिए उपयोग किया जाता है, उदाहरण के लिए शीर्ष 10 पंक्तियों की पहचान करने के लिए जिनके पास उच्चतम आदेश राशि है या प्रत्येक ग्राहक के आदेश की पहचान करते हैं जो सबसे अधिक राशि है, आदि।
यदि आप डेटासेट को क्रमबद्ध करना चाहते हैं और प्रत्येक पंक्ति को श्रेणियों में अलग-अलग करके हम पंक्तिबद्ध के साथ Row_Number () का उपयोग करते हैं। उदाहरण के लिए, प्रत्येक ग्राहक के आदेशों को अपने भीतर क्रमबद्ध करना जहां डेटासेट में सभी आदेश होते हैं, आदि।
SELECT
SalesOrderNumber,
CustomerId,
SubTotal,
ROW_NUMBER() OVER (PARTITION BY CustomerId ORDER BY SubTotal DESC) rn
FROM Sales.SalesOrderHeader
लेकिन जैसा कि मैं समझता हूं कि आप एक कॉलम द्वारा समूहीकृत पंक्तियों की संख्या की गणना करना चाहते हैं। आवश्यकता की कल्पना करने के लिए, यदि आप संबंधित ग्राहक के सभी आदेशों की गिनती को आदेश जानकारी के अलावा एक अलग कॉलम के रूप में देखना चाहते हैं, तो आप विभाजन के साथ COUNT () एकत्रीकरण फ़ंक्शन का उपयोग कर सकते हैं।
उदाहरण के लिए,
SELECT
SalesOrderNumber,
CustomerId,
COUNT(*) OVER (PARTITION BY CustomerId) CustomerOrderCount
FROM Sales.SalesOrderHeader