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

over() और विभाजन को समझने की कोशिश कर रहा है

आदेश तिथि के अनुसार आदेश देने का प्रयास करें, आपको परिणाम अधिक आसानी से दिखाई देंगे

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() बस प्रत्येक विभाजन के भीतर पंक्ति का क्रम देता है



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ग्रुप बाय के साथ अपडेट करें

  2. अवधारणा:जावा प्रोग्राम बनाएं और इसे ओरेकल डीबी में लोड करें - रैपर फ़ंक्शन जावा फ़ंक्शन को रिटर्न के साथ कॉल करता है

  3. पेजिनेशन क्वेरी में पंक्तियों की कुल संख्या प्राप्त करें

  4. केस स्टेटमेंट के ELSE में सेलेक्ट का उपयोग करने से मुझे ORA-00937 मिलता है:सिंगल-ग्रुप ग्रुप फंक्शन नहीं

  5. क्लासिक एएसपी पृष्ठों का उपयोग करके ओरेकल डेटाबेस से एनसीएलओबी, सीएलओबी डेटा मान कैसे पढ़ा जाए?