按时间维度统计——该时间段没有的显示为0

在做统计功能时,按时间维度统计,按年、按月、按季度统计
如果数据库在该时间中没有产生数据,则显示为零。说白了就是时间要连续展示

  • 按月
	select DATE_FORMAT(date_add('2016-01-20 00:00:00', interval row MONTH),'%Y-%m')as  date from
			 ( 
					SELECT @row := @row + 1 as row FROM 
					(select 0 union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all 		      select 8 union all select 9) t,
					(select 0 union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all           select 8 union all select 9) t2, 
					(SELECT @row:=-1) r
			 ) se
			 where DATE_FORMAT(date_add('2016-01-20 00:00:00', interval row MONTH),'%Y-%m') <= DATE_FORMAT('2021-04-02 00:00:00','%Y-%m')

在这里插入图片描述

  • 按年
			  select DATE_FORMAT(date_add('2016-01-20 00:00:00', interval row YEAR),'%Y')as timedDimension from
			 ( 
					SELECT @row := @row + 1 as row FROM 
					(select 0 union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all 		      select 8 union all select 9) t,
					(select 0 union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all           select 8 union all select 9) t2, 
					(SELECT @row:=-1) r
			 ) se
			  where DATE_FORMAT('2021-04-02 00:00:00','%Y')>= DATE_FORMAT(date_add('2016-01-20 00:00:00', interval row YEAR),'%Y')

  • 按季度
              select CONCAT(DATE_FORMAT(date_add('2016-01-20 00:00:00', interval row QUARTER),'%Y-Q')
                ,FLOOR((date_format(date_add('2016-01-20 00:00:00', interval row QUARTER),'%m')+2)/3)) as timedDimension from
			 ( 
					SELECT @row := @row + 1 as row FROM 
					(select 0 union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all 		      select 8 union all select 9) t,
					(select 0 union all select 1 union all select 2 union all select 3 union all select 4 union all select 5 union all select 6 union all select 7 union all           select 8 union all select 9) t2, 
					(SELECT @row:=-1) r
			 ) se
	 where DATE_FORMAT('2021-04-02 00:00:00','%Y-%m')>= DATE_FORMAT(date_add('2016-01-20 00:00:00', interval row QUARTER),'%Y-%m')
```![在这里插入图片描述](https://img-blog.csdnimg.cn/20210618154043960.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Mzg2MzQ2Mw==,size_16,color_FFFFFF,t_70)
季度展示可以根据产品的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值