假设我有一张这样的 table
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 。但我不知道如何在我的申请中实际应用它。您能给我一些关于如何使用它的提示吗? 提前致谢。
最佳答案
怎么样:
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 的匹配。
关于mysql - 统计时间间隔内的数据数量超过,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34996863/