每 5 分钟统计数量的 SQL 查询

//每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 查询。具体的查询逻辑如下:

  1. 首先,使用 DATE_FORMAT(create_time, '%Y-%m-%d %H') 将 create_time 字段格式化为 %Y-%m-%d %H 的格式,将其作为起始时间列 start_time
  2. 接下来,使用 FLOOR(MINUTE(create_time)/5) 将 create_time 字段的分钟部分按每 5 分钟进行分组。
  3. 然后,使用 COUNT(*) 函数统计每个时间段内的数量。
  4. 最后,按照起始时间 start_time 进行排序,得到最终的结果集。

发表评论

邮箱地址不会被公开。