Mysql

mysql查詢獲取時差

  • October 25, 2018

我有這樣的查詢

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 上看到這個結果。

引用自:https://dba.stackexchange.com/questions/220863