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

Oracle सन्निहित दिनांक ब्लॉक द्वारा डेटा का चयन करता है

यह "अंतराल और द्वीप" समस्या जैसा दिखता है:

WITH cte("hash","date") AS (
    SELECT 'abcd',  DATE'2017-11-01' FROM dual UNION ALL
    SELECT 'abcd',  DATE'2017-11-02' FROM dual UNION ALL
    SELECT 'abcd',  DATE'2017-11-03' FROM dual UNION ALL
    SELECT 'wxyz',  DATE'2017-11-04' FROM dual UNION ALL
    SELECT 'wxyz',  DATE'2017-11-05' FROM dual UNION ALL
    SELECT 'abcd',  DATE'2017-11-06' FROM dual UNION ALL
    SELECT 'wxyz',  DATE'2017-11-07' FROM dual UNION ALL
    SELECT 'abcd',  DATE'2017-11-08' FROM dual UNION ALL
    SELECT 'abcd',  DATE'2017-11-09' FROM dual UNION ALL
    SELECT 'lmno',  DATE'2017-11-10' FROM dual UNION ALL
    SELECT 'lmno',  DATE'2017-11-11' FROM dual 
)
select "hash"
      ,min("date") as startdate
      ,max("date") as enddate
from (
    select "date","hash"
         , row_number() over (order by "date") 
         - row_number() over (partition by "hash" order by "date") as grp
    from cte
) A
group by "hash", grp
ORDER BY startdate;

DBFiddle डेमो



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. जावा कोड के माध्यम से Oracle sql स्क्रिप्ट को कैसे निष्पादित करें

  2. Oracle RAC और अनुक्रम

  3. हाइबरनेट में एक अद्यतन रिटर्निंग क्वेरी बनाना

  4. SQL में, मैं 5!56 के हर संभव अद्वितीय संयोजन को कैसे उत्पन्न कर सकता हूँ?

  5. क्या डीबीडी ::ओरेकल का उपयोग करके एक ही क्वेरी में एकाधिक कथन निष्पादित करना संभव है?