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

Jak wybrać rekordy pogrupowane według godziny dnia, w tym godzin, które nie mają rekordów?

SELECT h.hrs, NVL(Quantity, 0) Quantity
FROM (SELECT TRIM(to_char(LEVEL - 1, '00')) hrs
       FROM dual
       CONNECT BY LEVEL < 25) h
LEFT JOIN (SELECT TO_CHAR(event_date, 'HH24') AS during_hour,
                  COUNT(*) Quantity
           FROM user_activity u
           WHERE event_date BETWEEN
                 to_date('15-JUN-2010 14:00:00', 'DD-MON-YYYY HH24:MI:SS') AND
                 to_date('16-JUN-2010 13:59:59', 'DD-MON-YYYY HH24:MI:SS')
           AND event = 'user.login'
           GROUP BY TO_CHAR(event_date, 'HH24')) t
ON (h.hrs = t.during_hour)
ORDER BY h.hrs;


  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 SQL | Modyfikacja danych w ORDER BY

  2. Jaki jest najlepszy sposób wyszukiwania typu danych Long w bazie danych Oracle?

  3. Jak zapisać BLOB jako plik w PL/SQL?

  4. Lista elementów formatu daty i godziny w Oracle

  5. Wywoływanie wywołania funkcji w łańcuchu w procedurze Oracle