生成每月报表mysql

时间:2019-08-16 06:55:36

标签: mysql

我有一个表格,其中有5列,

id (auto incrementing number), titleId, version, created_at

titleId和版本的组合始终是唯一的。我想找出过去1个​​月中的每一天,每天有多少个唯一的titleId,以及每天有多少个条目。这是因为在给定的一天中,可能会有同一titleId的多个版本。

select count(*) from titles where  created_at >= '2019-08-12 00:00:00' and created_at <= '2019-08-13 00:00:00' will give me total number of titles which came on 12th August 

select count(distinct titleId) from titles where  created_at >= '2019-08-12 00:00:00' and created_at <= '2019-08-13 00:00:00'

将会给我8月12日的独特头衔的数量。我有办法生成过去30/60天的数据吗?

我知道我可以通过更改日期来获取数字来手动运行30次此命令,但是我想知道在mysql中是否有更好的方法可以做到这一点

1 个答案:

答案 0 :(得分:1)

只要每天都有一个条目,此查询应为您提供最近30天的每天数据:

select date(created_at) as cdate, count(distinct titleId) as cnt
from titles
where created_at >= cur_date() - interval 30 day
group by cdate