[英]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.