mysql中按照日期分组查询数量

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql中按照日期分组查询数量相关的知识,希望对你有一定的参考价值。

mysql中按照日期分组查询数量,如何让没有的日期也显示出来,比如查询2014-11-01到2014-12-01号某个count(*),其中有的日期在数据库中是不存在的,如何让其也显示,只不过为0,样式如下:
2014-11-01 10
2014-11-02 10
2014-11-03 0
2014-11-04 10
2014-11-05 0

SELECT DATE_FORMAT(time,'%Y-%m-%d') as day, sum(case when amount>0 then amount when amount=0 then 0 end) as amount1
from table where time>='2014-11-01' group by day;
我没有测试。time表示日期,amount表示数量。查询11月后每天成交数量追问

谢谢,我是想查count(*),如果该天有数据,则显示该数据,如果库中没有该天的数据,则该天的数据显示为0,该如何写呢?

追答

SELECT DATE_FORMAT(time,'%Y-%m-%d') as day, sum(case when amount>0 then 1 when amount=0 then 0 end) as amount1
from table where time>='2014-11-01' group by day;

把then amount改为then 1就行了
amount是整型的话就判断是否大于0了,是varchar型就判断是否is not null然后再做then计算


追问

select count(1),date_format(date,'%Y-%m-%d') from table where date_format(date,'%Y-%m-%d')>date_format("2014-11-19",'%Y-%m-%d')

group by date_format(date,'%Y-%m-%d');

参考技术A SELECT DATE_FORMAT(time,'%Y-%m-%d') as day, sum(case when amount>0 then amount when amount=0 then 0 end) as amount1
from table where time>='2014-11-01' group by day;
我没有测试。time表示日期,amount表示数量。查询11月后每天成交数量

sql将日期按照年月分组并统计数量

1 SELECT DATE_FORMAT(releaseDate,"%Y年%m月") AS dates,COUNT(*) FROM t_diary GROUP BY DATE_FORMAT(releaseDate,"%Y年%m月")
ORDER BY DATE_FORMAT(releaseDate,"%Y年%m月") DESC ;
DATE_FORMAT();按照格式对某个日期操作
ORDER BY 排序
DESC 降序




以上是关于mysql中按照日期分组查询数量的主要内容,如果未能解决你的问题,请参考以下文章

mysql 如何按月分组查询出当前年度每个月的短信数量(数据库中这个月要是为空的话就用0条怎么显示出来)

mysql 多表 查询 之后 group by 分组 order by 无法按照日期排序

mysql 统计数据,按照日期分组,把没有数据的日期也展示出来

Mysql之分组查询

EasyClick 之 MySQL 分组查询

EasyClick 之 MySQL 分组查询