2016-01-25 67 views
0

假設我有這樣計數沒有數據的時間間隔超過

id user_id activity_id start_time   duration 
1 1  1   2015-12-02 12:24:22 00:17:25 
1 1  2   2015-12-02 12:25:22 00:17:25 
1 1  3   2015-12-02 12:26:22 00:17:25 
1 1  4   2015-12-02 12:26:22 00:17:25 
1 1  4   2015-12-02 12:27:22 00:17:25 
1 1  4   2015-12-02 12:29:22 00:17:25 
1 1  4   2015-12-02 12:33:22 00:17:25 

現在的表,假設我需要一個查詢類似,其彼此-例如 計數3分鐘之內的數像 12:24:22是4它得到計數24 25和26 12:25:22是2它得到計數25和24 12:25:22是4它得到計數25 26和27 12:26: 22是4它得到計數24 25和26 12:26:22是3它得到計數26和27即它得到了近3分鐘的計數。

(但實際上,我的間隔時間是10分鐘)。 我需要從每個區間內每隔一分鐘計數一次。我會看到一些解決方案,如 MySQL GROUP BY DateTime +/- 3 seconds。但是我沒有得到實際上我可以將它應用於我的訴訟中。請給我一些提示,告訴我如何處理這件事。 在此先感謝。

+0

爲什麼「12:24:22是2 12:25:22是3 12:26:22是3」?請更好地解釋它..我會盡力回答你..等待你的評論或編輯 –

+0

我已編輯,請檢查@LucaGiardina –

回答

0

如何像:

SELECT t1.start_time, COUNT(*) FROM table AS t1 
CROSS JOIN table AS t2 
WHERE ABS(TIMESTAMPDIFF(MINUTE, t1.start_time, t2.start_time)) < 10 
GROUP BY t1.start_time 

注意,這將在10場比賽給予與start_times分鐘在規定時間的兩邊。

0
SELECT a.*, COUNT(a.start_time) AS TOT 
FROM `your_table`AS a 
INNER JOIN `your_table` AS b 
WHERE ABS(TIME_TO_SEC(a.start_time) - TIME_TO_SEC(b.start_time)) < 180 
GROUP BY a.start_time 

其中180 = 3分鐘(180秒)

@Jonathan Twite答案工程太