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

सभी महीनों को मिलाकर महीने के हिसाब से ग्रुप कैसे करें?

Oracle में तिथि हेरफेर कार्यों की एक अच्छी सरणी . इस समस्या के लिए दो प्रासंगिक हैं

  • MONTHS_BETWEEN() जो दो तिथियों के बीच महीनों की संख्या की गणना करता है
  • ADD_MONTHS() जो किसी तारीख को दिए गए महीनों की संख्या से बढ़ा देता है

हम आपकी तालिका के रिकॉर्ड द्वारा फैले सभी महीनों की एक तालिका बनाने के लिए इन कार्यों को जोड़ सकते हैं। फिर हम USER_INFO से उस कैलेंडर में सशर्त रूप से रिकॉर्ड में शामिल होने के लिए बाहरी जुड़ाव का उपयोग करते हैं। जब कोई रिकॉर्ड मेल नहीं खाता count(id) शून्य होगा।

with cte as (
  select max(trunc(created, 'MM')) as max_dt
         , min(trunc(created, 'MM')) as min_dt
  from user_info
  )
 , cal as (
    select add_months(min_dt, (level-1)) as mth
    from cte
    connect by level <= months_between(max_dt, min_dt) + 1
)
select to_char(cal.mth, 'YYYY-MM') as operation
       , count(id)
from  cal
     left outer join user_info
   on trunc(user_info.created, 'mm') = cal.mth
group by rollup (cal.mth)
order by 1
/



  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. टैब-पृथक डेटा फ़ाइल उत्पन्न करने के लिए SQLPlus सेटिंग्स

  3. AWS EC2 से AWS RDS में Oracle डेटाबेस माइग्रेट करना, भाग 3

  4. हाइबरनेट का saveOrUpdate नॉट-नल कॉलम प्रॉपर्टी पर ध्यान नहीं देता

  5. मुझे प्रारूप त्रुटि क्यों मिल रही है:संपत्ति 'v$session.program' Oracle से जुड़ रही है?