需求背景
最近的需求,记录一下。一个统计表数据的接口,前端需要返回两个数组,一个是0-23的小时计数,一个是各小时对应的统计数。
思路
- 直接使用group by查询要统计的表,当某个小时统计数为0时,会没有该小时分组。思考了一下,需要建立辅助表,只有一列小时,再插入0-23共24个小时
1 | CREATE TABLE hours_list ( |
- 先查小时表,再做连接需要查的表,即可将没有统计数的小时填充上0。这里由于需要查多个表中,create_time在每个小时区间内、且SOURCE_ID等于查询条件的统计之和,所以UNION ALL了多张表
1 | SELECT |
效果
统计数为0的小时也可以查出来了。