查看如何从 2 小时间隔时间戳字段中列出 1 到 120 分钟,而不是从两个小时一起获取每一分钟。
我想要的是这样的:
min COUNT(*)
1 300
2 320
3 294
... ...
... ...
61 341
62 210
63 258
... ...
... ...
119 196
120 347
我正在执行 GROUP BY,但我只得到 60 行来收集每小时的结果。
min COUNT(*)
1 641
2 530
3 552
... ...
... ...
对不起,如果它很愚蠢,但我无法找到关键字......“按分钟分组而不收集,按分钟列出查询 mysql,订购超过 60 分钟”是我进行的一些搜索。
我现在正在使用它,当然我知道它不起作用但我想从某些东西进行初始化,
SELECT MIN(timestamp) AS min, COUNT(field) FROM table WHERE timestamp BETWEEN '2014-06-12 10:00:00' AND '2014-06-12 12:00:00' GROUP BY min
您可以使用timestampdiff函数。您需要使用开始日期作为第二个参数,如下所示:
一个想法打动了我 - 时间戳(无论如何在 MySQL 中)是一个 Unix 纪元 - 即自 01/01/1970 以来的秒数,您可以将其转换为分钟。您必须减去两个日期之间的分钟数,然后按此进行分组。可能是这样的 - 发布数据(DDL + DML 或到 SQLFiddle),我将对其进行测试。SELECT TIMESTAMPDIFF(MINUTE, end_timestamp, begin_timestamp) AS minutes, COUNT(your_field) from your_table GROUP BY minutes ORDER BY minutes ASC;