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

Oracle sql क्वेरी तिथि के अनुसार लगातार रिकॉर्ड समूहित करने के लिए

मान लें कि हम केवल start_date . का उपयोग कर सकते हैं आसन्न रिकॉर्ड की पहचान करने के लिए (यानी, कोई अंतराल नहीं हैं), तो आप पंक्ति संख्या दृष्टिकोण के अंतर का उपयोग कर सकते हैं:

select id, min(start_date) as mn_date, max(end_date) as mx_date, rate
from (select t.*,
             row_number() over (partition by id order by start_date) as seqnum_i,
             row_number() over (partition by id, rate order by start_date) as seqnum_ir
      from t
     ) t
group by id (seqnum_i - seqnum_ir), rate;

यह कैसे काम करता है यह देखने के लिए, सबक्वेरी के परिणाम देखें। आपको "देखने" में सक्षम होना चाहिए कि कैसे दो पंक्ति संख्याओं का अंतर समान दर के साथ आसन्न रिकॉर्ड के समूहों को परिभाषित करता है।



  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. PLS-00049 खराब बाइंड चर:

  3. SQL*Loader नियंत्रण फ़ाइल का उपयोग करके दिनांक को एक प्रारूप से दूसरे प्रारूप में बदलें

  4. ORA-06550:ASP.NET में ऑरैकल पैकेज के अंदर किसी फ़ंक्शन को कॉल करते समय गलत संख्या या तर्क त्रुटि का प्रकार

  5. कनेक्शन स्ट्रिंग पर सेवा नाम के बजाय SID का उपयोग करते समय cx_Oracle कनेक्ट नहीं होता है