आदेश तिथि के अनुसार आदेश देने का प्रयास करें, आपको परिणाम अधिक आसानी से दिखाई देंगे
select Row_Number() over(partition by orderdate order by orderdate asc)
as Rownumber, salesorderid, orderdate
from test2
order by orderdate;
देना चाहिए (मैंने स्पष्टता के लिए रिक्त पंक्तियाँ जोड़ी हैं)
ROWNUMBER SALESORDERID ORDERDATE
1 43664 07/01/2001
1 43911 08/01/2001
2 43867 08/01/2001
3 43895 08/01/2001
4 43894 08/01/2001
5 43877 08/01/2001
1 44109 09/01/2001
1 44285 10/01/2001
1 44483 11/01/2001
2 44501 11/01/2001
आप देखेंगे कि परिणाम 'विभाजन' में विभाजित है, प्रत्येक विभाजन समान क्रम दिनांक वाली पंक्तियों का समूह है। यही 'आदेश के अनुसार विभाजन' का अर्थ है।
एक विभाजन के भीतर, पंक्तियों को ऑर्डरडेट द्वारा ऑर्डर किया जाता है, '(ऑर्डरडेट ऑर्डर द्वारा ऑर्डरडेट एएससी द्वारा विभाजन)' के दूसरे खंड के अनुसार। यह बहुत उपयोगी नहीं है, क्योंकि एक विभाजन के भीतर सभी पंक्तियों में एक ही क्रमांक होने वाला है। उसके कारण, विभाजन के भीतर पंक्तियों का क्रम यादृच्छिक है। अधिक पुनरुत्पादित परिणाम प्राप्त करने के लिए खंड द्वारा विभाजन के भीतर salesorderid द्वारा आदेश देने का प्रयास करें।
row_number() बस प्रत्येक विभाजन के भीतर पंक्ति का क्रम देता है