遇到了个这样的需求,需要统计某个时间段内每个点下载的数量。
先给大家看最后成果图再来讲解
根据我的需求,我的表结构只需要用到device_id,create_time这两个字段,大概思路是,先根据时间分组查出下载量,再去连一张时间表保证时间段连续。
其中有几个要注意的问题是:
第一,时间分组函数DATE_FORMAT(a.create_time,'%Y-%m-%d %H'),
需要根据用户输入的时间间隔判断是按什么度量分组。如下图:
时间间隔为d
时间间隔 | 按什么度量分组 |
d<1天 | 小时 '%Y-%m-%d %H' |
1天<d<1月 | 天 '%Y-%m-%d' |
1月<d<1年 | 月 '%Y-%m' |
d>1年 | 年 |