MySQL按15分钟分组聚合

有一个需求,分解后的意思是:按每15分钟统计最大值,最小值等。
以前自己写过,忘记了。重新从网上找了一下例子,结合自己的情况,写出如下

1、往表里面加入一些数据
image
按每15分钟,统计出该段时间内最大值和最小值。

SELECT FROM_UNIXTIME(t.unit_time * 900, '%Y-%m-%d %H:%i:%s') time, t.min, t.max
FROM
(
	SELECT CEIL(UNIX_TIMESTAMP(t.time) / 900) as unit_time, min(t.amt) min, max(t.amt) max
	FROM test_db.trade t
	GROUP BY unit_time
) t;

2、执行结果

实现原理也不难,核心思想是格式化后分组;套这个SQL的格式化,可以轻轻松松实现按5分钟、30分钟、2小时、4小时等聚合统计

posted @ 2022-09-21 17:46  搬运工001  阅读(1111)  评论(0编辑  收藏  举报