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

ऑरैकल एसक्यूएल में तिथि के अनुसार समूहीकृत डेटा

अनुक्रमों में "लगातार" पंक्तियों के सेट खोजने के लिए यह टैबिबिटोसन विधि का प्रत्यक्ष अनुप्रयोग है। दो विश्लेषणात्मक row_number() . का अंतर फ़ंक्शन हमारे द्वारा मानक एकत्रीकरण लागू करने से पहले आवश्यक अतिरिक्त समूहीकरण ध्वज बनाता है।

select   employee, job, min(start_date) as start_date, max(end_date) as end_date, FTE
from     ( select employee, job, start_date, end_date, FTE,
                  row_number() over (partition by employee, job      order by start_date) -
                  row_number() over (partition by employee, job, FTE order by start_date) 
                                                                                    as grp
           from t
         )
group by employee, job, FTE, grp
order by employee, start_date
;


EMPLOYEE   JOB   START_DATE  END_DATE           FTE
---------- ----- ----------- ----------- ----------
1111       1     19-May-2008 27-Nov-2013        100
1111       1     28-Nov-2013 24-Aug-2015         60
1111       1     25-Aug-2015 11-Sep-2016     68.571
1111       1     12-Sep-2016 29-Sep-2016     72.857
1111       1     30-Sep-2016 10-Nov-2016     91.429
1111       1     11-Nov-2016 23-Apr-2017        100
1111       1     24-Apr-2017 14-Jan-2018         60
1111       1     15-Jan-2018 31-May-2019     71.429
1111       1     01-Jun-2019 31-Dec-2049        100

9 rows selected.



  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. Oracle RAC वातावरण से Expdp

  4. एकाधिक पृष्ठों के साथ एक शीर्ष प्रपत्र बनाएं

  5. क्या जेपीए एंटिटीज, ओरेकल 10 जी और कैलेंडर टाइप प्रॉपर्टीज में कोई समस्या है?