Mysql
mysql查詢獲取時差
我有這樣的查詢
SELECT user_ID, tanggal, kode_layanan, nomor_antrian, aksi_ID,jam FROM `transaksi` WHERE tanggal = '2018-10-11' AND kode_layanan = 'A' AND aksi_ID BETWEEN 4 AND 9
結果如下圖
我想做的是計算時間差“堵塞”。我知道有類似的問題,但我認為它的不同條件。那麼如何解決查詢?謝謝
我認為您的列定義將如下查詢所示:
select user_ID, tanggal, kode_layanan, nomor_antrian, aksi_ID, jam, case aksi_ID when 4 then timediff ( jam, ( select t2.jam from transaki t2 where t2.aksi_ID = 9 and t2.nomor_antrian = ( select max(t3.nomor_antrian) from transaki t3 where t3.nomor_antrian < transaki.nomor_antrian ) ) ) else null end as idle_time from transaki order by jam;
邏輯是:“如果目前行的
aski_ID
值為‘4’,則求目前行的jam
值與值為9jam
的行的值與小於目前值的最大值之間的時間差行的值”。aski_ID``nomor_antrian``nomor_antrian``nomor_antrian
您可以在 db-fiddle 上看到這個結果。