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

Napisz widok bazy danych Oracle na podstawie różnicy znaczników czasu w różnych kolumnach

Jeśli chcesz różnicę z created_time który nie ma komponentu czasowego, wtedy potrzebujesz takiej logiki:

select msg_guid,
       (max(case when payload_type = 1 then created_time end) -
        (case when max(case when payload_type = 2 then created_time end) <>
                   trunc(max(case when payload_type = 2 then created_time end))
              then max(case when payload_type = 2 then created_time end) 
              when max(case when payload_type = 3 then created_time end) <>
                   trunc(max(case when payload_type = 3 then created_time end))
              then max(case when payload_type = 3 then created_time end) 
        end)
        ) as diff              
from table t
group by msg_guid;

Zwraca wynik jako ułamki dnia.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Konwersja Oracle znacznika czasu UNIX na znacznik czasu ze strefą czasową

  2. Oracle — tekst_sql obcięty do 20 znaków dla instrukcji CREATE/ALTER/GRANT?

  3. ORA-00979:nie dotyczy wyrażenia GROUP BY

  4. Używanie DISTINCT dla określonych kolumn

  5. SSIS nie może zapisać pakietów i ponownie uruchamia program Visual Studio