//每5分钟统计
SELECT DATE_FORMAT(create_time, '%Y-%m-%d %H:%i') AS start_time, COUNT(*) AS count FROM payment_flow WHERE create_time > '2024-04-05' AND merchant_id = '652ccc4938648062016402ad' GROUP BY DATE_FORMAT(create_time, '%Y-%m-%d %H'), FLOOR(MINUTE(create_time) / 5) ORDER BY start_time;
通过将这两个表达式组合在一起,我们可以实现按每 5 分钟统计数量的 SQL 查询。具体的查询逻辑如下:
- 首先,使用
DATE_FORMAT(create_time, '%Y-%m-%d %H')
将create_time
字段格式化为%Y-%m-%d %H
的格式,将其作为起始时间列start_time
。- 接下来,使用
FLOOR(MINUTE(create_time)/5)
将create_time
字段的分钟部分按每 5 分钟进行分组。- 然后,使用
COUNT(*)
函数统计每个时间段内的数量。- 最后,按照起始时间
start_time
进行排序,得到最终的结果集。