Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Kelompokkan tabel menjadi interval 15 menit

;with cte_max as 
(
   select dateadd(mi, -15, max(StatusEndDateTime)) as EndTime, min(StatusSetDateTime) as StartTime
   from AgentActivityLog
), times as
(
    select StartTime as Time from cte_max
    union all
    select dateadd(mi, 15, c.Time)
    from times as c
        cross join cte_max as cm
    where c.Time <= cm.EndTime
)
select
    t.Time, A.UserID, A.Status,
    case
        when t.Time = A.StatusEndDateTime then 0
        else A.StatusDuration / (count(*) over (partition by A.StatusSetDateTime, A.UserID, A.Status) - 1)
    end as Duration
from AgentActivityLog as A
    left outer join times as t on t.Time >= A.StatusSetDateTime and t.Time <= A.StatusEndDateTime

demo biola sql



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara membuat Tabel Tertaut ODBC secara terprogram ke Tampilan SQL Server dan membuatnya dapat diedit?

  2. Cara Membuat Batasan Cek pada Kolom Tunggal di SQL Server - Tutorial SQL Server / TSQL Part 83

  3. 4 Tips untuk Menyiapkan Peringatan SQL Server Anda

  4. Kesalahan fatal PHP:Panggilan ke fungsi yang tidak ditentukan mssql_query ()

  5. Cara Memasukkan String ke String lain di SQL Server menggunakan STUFF()