统计一段时间内每天的数据量按日期分组,group by 怎么把某天数据量为0的也显示出来?

MySql 码拜 8年前 (2014-04-27) 2566次浏览 0个评论

举个例子:
表结构: 
id————–name————–addtime
1                       a                      2014-01-01 02:30:21
1                       b                      2014-01-03 03:20:02
1                       c                      2014-01-03 06:10:30
1                       d                      2014-01-06 11:30:15
1                       e                      2014-01-06 11:10:18
1                       f                       2014-01-06 12:30:19
想要达到查询结果:
addtime—————count
2014-01-01                  1
2014-01-02                  0
2014-01-03                  2
2014-01-04                  0
2014-01-05                  0
2014-01-06                  3
请教各位大神这个SQL要怎么写?

用保存所有日期的表与工作表连接处理
具体的SQL要怎么写呢?
20分
先用SP生成日期
select addtime,count(*)-1 from (
select * from lsb
union all
select name,addtime from tt) a
group by addtime
我这是一个表的,你这个SQL要查两个表啊?
当然,MYSQL不支持递归查询
这么说,那我只是一个表的,没办法靠SQL查出来了么?
引用 6 楼 mammothlrm 的回复:

这么说,那我只是一个表的,没办法靠SQL查出来了么?

yes

20分
你需要另外一张日历表,然后做 left join ,这是最通用的方法。

其它可以使用存储过程,或者自己硬写一个 (select 1 union select 2 union select 3 union  .. union select 1000) c 去left join

谢谢两位,以后碰到类似的问题知道怎么解决了~~~不过这次我用其他方式解决了
引用 9 楼 mammothlrm 的回复:

谢谢两位,以后碰到类似的问题知道怎么解决了~~~不过这次我用其他方式解决了

请教一下这个问题是怎么解决的?我也遇到这个问题了

想知道楼主怎么解决的

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明统计一段时间内每天的数据量按日期分组,group by 怎么把某天数据量为0的也显示出来?
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!