簡體   English   中英

計算在條件觸發后條件觸發MySQL的次數

[英]Count how many times a condition is triggered in MySQL into a time lapse

我有這個SQL表

     temp_int   hum_int   datetime             
      25.9        84   2013-10-01 11:30:00  
      26.4        81   2013-10-01 11:45:00  
      25.3      88.1   2013-10-02 11:00:00  
      26.3      85.8   2013-10-02 11:15:00  
      27.1      83.5   2013-10-02 11:30:00  
      27.9      81.9   2013-10-02 11:45:00  
      28.8        81   2013-10-02 12:00:00  
      26.1      80.3   2013-10-02 19:15:00  
      25.8      81.6   2013-10-02 19:30:00  

所以我想計算條件超過45分鍾的次數。 條件是temp_int> = 25和hum_int> 80 ,因此對於此示例數據集,結果必須為1:

第一個= 2013-10-02 11:00:00

第二個= 2013-10-02 11:45:00

例如:

在此處輸入圖片說明

對於此設置,mysql必須返回一行,例如,在啟動時間窗口時。

為了實現這一點,我必須創建額外的列ID以使其易於在行之間進行處理,您也應該這樣做。 並用這樣的值填充它:

id  temp_int   hum_int   datetime             
 1    25.9        84   2013-10-01 11:30:00  
 2    26.4        81   2013-10-01 11:45:00  
 3    25.3      88.1   2013-10-02 11:00:00  
 4    26.3      85.8   2013-10-02 11:15:00  
 5    27.1      83.5   2013-10-02 11:30:00  
 6    27.9      81.9   2013-10-02 11:45:00  
 7    28.8        81   2013-10-02 12:00:00  
 8    26.1      80.3   2013-10-02 19:15:00  
 9    25.8      81.6   2013-10-02 19:30:00 

然后運行此查詢

select  t1.`datetime`
from contacts t1
inner join contacts t2
on t2.id = (t1.id + 1)
where TIMESTAMPDIFF(MINUTE,t1.`datetime`,t2.`datetime`) > 45
and t1.temp_int>=25 and t1.hum_int>80

在此處觀看演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM