Oracle
 sql >> Baza danych >  >> RDS >> Oracle

SQL obcinanie/grupowanie/uporządkowanie według dat (dzień/miesiąc/kwartał/rok) z datami pominięcia sumy bez danych

Spróbuj czegoś takiego (przykład uproszczony):

with 
months_int as
(select trunc(min(inc_date), 'MM') min_month, trunc(max(inc_date), 'MM') max_month
 from data),
months as
(
  select add_months(min_month, level-1) mnth_date
  from months_int 
  connect by add_months(min_month, level-1)<= max_month
  )
select  mnth_date, sum(cnt) 
from data  right outer join months on trunc(inc_date, 'MM') = mnth_date
group by mnth_date
order by mnth_date

Oto przykład sqlfiddle



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Błąd podczas wykonywania objaśnienia ODCIEXTTABLEOPEN

  2. Konwertuj datę z jednego formatu na inny za pomocą pliku kontrolnego SQL*Loader

  3. Używanie widoku bez klucza podstawowego z Entity

  4. Zagnieżdżona funkcja PIPELINED

  5. Zoptymalizuj zapytanie Oracle