统计订单表每天、每月、每年的数据

订单表中时间字段为create_date,现在要统计一下每天或者每个月的订单数量。

现在的统计是这样去查的:
select DATE_FORMAT(create_date,'%Y年%m月%d日') time,count(*) from order group by time

查出来大概就是这样的:

...
2018年06月01日 87
2018年06月04日 3
2018年06月05日 125

有几天可能一个订单都没有,就会查不出那天的日期和数量。
就像上面我自己模拟的那样,2号3号不存在。
就是希望就算没有订单,也能查出

2018年06月02日 0
2018年06月03日 0

阅读 7k
2 个回答

你这么说真的很为难,不过也不是不可以,你先生成对应日期的虚拟表,然后依据这个虚拟表中的日期,进行 where 条件查询。嗯,就是这么简单,应该要写个存储过程吧,因为在存储过程外是不允许循环的。当然了,并不建议你这么做,因为很容易全表查询。建议,统计好对应数据再交由程序进行遍历,如果空缺,默认设置显示当天为空就好。

数据库里没有当然查不出来啦,除非每天都存一次,默认是0就好了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题