Oracle
 sql >> база данни >  >> RDS >> Oracle

Oracle SQL - Как да получите бройки въз основа на дати в множество колони в ORACLE

Ето начин да направите това с помощта на оператора PIVOT.

with 
     inputs (REGID, SESSION_START_DATETIME, USAGEID) as (  
       select 1 , to_date('7/11/2016', 'mm/dd/yyyy'), 1 from dual union all 
       select 1 , to_date('6/10/2016', 'mm/dd/yyyy'), 1 from dual union all       
       select 1 , to_date('6/09/2016', 'mm/dd/yyyy'), 1 from dual union all 
       select 1 , to_date('5/04/2016', 'mm/dd/yyyy'), 1 from dual union all 
       select 1 , to_date('5/04/2016', 'mm/dd/yyyy'), 1 from dual union all 
       select 1 , to_date('5/04/2016', 'mm/dd/yyyy'), 1 from dual
     )
select * from (
  select regid, session_start_datetime,
         case when trunc(sysdate) - session_start_datetime between  0 and 30
                   then  '0-30_days_usagecount'
              when trunc(sysdate) - session_start_datetime between 31 and 60
                   then '31-60_days_usagecount'
              when trunc(sysdate) - session_start_datetime between 61 and 90
                   then '61-90_days_usagecount'
              end
         as col
  from inputs
)
pivot (  count(session_start_datetime)
            for col in ( '0-30_days_usagecount', '31-60_days_usagecount',
                        '61-90_days_usagecount'
                       )
      )
;



     REGID '0-30_days_usagecount' '31-60_days_usagecount' '61-90_days_usagecount'
---------- ---------------------- ----------------------- -----------------------
         1                      1                       2                       3

1 row selected.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да получите генерирани ключове от executeBatch без ArrayIndexOutOfBoundsException?

  2. ORA-14551:не може да изпълни DML операция вътре в заявка

  3. Получаване на правилното време от датата на Oracle в Solr DataImportHandler

  4. Как да разархивирате файл в PL/SQL?

  5. Как да изпълните съхранена процедура на Oracle чрез връзка към база данни