数据处理时,经常需要:统计不同时间粒度下的数据分布情况。
例如,网站每天(or每小时)的访问量,周杰伦每年(or每季度 or每月)的收入等。
首先有一个表叫:table_test,其中 time 列为最细的时间颗粒度,类型是datetime,income 列是收入(下图)。
代码:
##############################################################
#按秒
SELECT DATE_FORMAT(t.time, '%Y-%m-%d %H:%i:%s') AS '秒',
SUM(t.income) 收入
FROM table_test t GROUP BY 1;
#按分
SELECT DATE_FORMAT(t.time, '%Y-%m-%d %H:%i:00') AS '分',
SUM(t.income) 收入
FROM table_test t GROUP BY 1;
#按时
SELECT DATE_FORMAT(t.time, '%Y-%m-%d %H:00:00') AS '时',
SUM(t.income) 收入
FROM table_test t GROUP BY 1;
###############################################