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

न्यूनतम और अधिकतम तिथि पर ग्रुप बाय कैसे बनाएं

यह दिनांक-श्रृंखला के साथ अंतराल और द्वीप समस्या का एक प्रकार है। मेरा सुझाव है कि left join . का उपयोग करें यह पता लगाने के लिए कि द्वीप कहाँ से शुरू होते हैं। फिर एक संचयी योग और एकत्रीकरण:

select emp_id, title, min(start_date), max(end_date)
from (select t.*,
             sum(case when tprev.emp_id is null then 1 else 0 end) over
                 (partition by t.emp_id, t.title order by t.start_date) as grouping
      from t left join
           t tprev
           on t.emp_id = tprev.emp_id and
              t.title = tprev.title and
              t.start_date = tprev.end_date + 1
     ) t
group by grouping, emp_id, title;


  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 में एकाधिक पंक्तियों को एक में कैसे संयोजित किया जा सकता है?

  2. अखंडता बाधा (...) का उल्लंघन किया गया - चाइल्ड रिकॉर्ड मिला, जावा, ओरेकल, हाइबरनेट

  3. मैनुअल डीबी अपग्रेड के बाद ग्रिड नियंत्रण का उन्नयन

  4. स्पेस डिलीमीटर के साथ किसी भी सामान्य शब्द या वाक्य में nth स्ट्रिंग कैसे प्राप्त करें

  5. सी # के माध्यम से ओरेकल डाटाबेस से कनेक्ट हो रहा है?