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

SQL -- उन तिथियों को भरना जिनके परिणाम नहीं हैं

आप उन्हें कैसे बनाना चाहते हैं, इस पर निर्भर करते हुए आप या तो एक कैलेंडर तालिका बना सकते हैं। या Oracle connect by का उपयोग करके गतिशील रूप से पंक्तियां उत्पन्न करें वाक्य रचना।

with the_dates as (
  select max(trunc(Create_Dtime)) as max_date
       , min(trunc(Create_Dtime)) as min_date
    from player 
         )
  , generator as (
  select min_date + level as the_date
    from the_dates
 connect by level <= max_date
         )
select g.the_date, count(trunc(p.Create_Dtime))
  from generator g
  left outer join player p
    on g.the_date = trunc(p.Create_Dtime)
 group by g.the_date
 order by g.the_date desc

यदि आप कैलेंडर तालिका विकल्प में नीचे जाते हैं तो यह थोड़ा साफ हो जाता है:

with the_dates as (
  select max(trunc(Create_Dtime)) as max_date
       , min(trunc(Create_Dtime)) as min_date
    from player 
         )
select c.the_date, count(trunc(p.Create_Dtime))
  from calender c
  join the_dates td
    on c.the_date between td.min_date and td.max_date
  left outer join join player p
    on c.the_date = trunc(p.Create_Dtime)
 group by c.the_date
 order by c.the_date

या, आपने अभी-अभी अपनी तिथि बाधाओं को देखा है:

with the_dates as (
  select to_date('07-05-2012','dd-mm-yyyy') + level as the_date
    from dual
 connect by level <= trunc(to_date('07-05-2012','dd-mm-yyyy') - sysdate)
         )
 select td.the_date, count(trunc(p.create_dtime))
   from the_dates td
   left outer join player p
     on td.the_date = trunc(p.create_dtime)
  group by td.the_date
  order by td.the_date

इन सभी के लिए मैं trunc(create_dtime) . पर एक इंडेक्स की अनुशंसा करता हूं आपके player . पर टेबल।




  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. PRO C में PREPARE QUERY कब विफल हो जाती है?

  3. Oracle की तरह mysql में ट्रंक दिनांक फ़ील्ड

  4. Oracle 11g 11.2.0.1 में जावा संस्करण को कैसे अपग्रेड करें

  5. एपेक्स एडमिन अकाउंट अनलॉक करें