//每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
进行排序,得到最终的结果集。