我试图统计今年每个月记录的新用户数。喜欢
需要按月注册新用户的数据
JAn Feb Mar April May ..... Dec
1 2 4 2 5 ..... 1
通过创建日期和用户id。
这是用户表
id created_at
1 2020-01-09 22:38:55
2 2020-02-09 22:38:55
3 2020-02-09 22:38:55
4 2020-03-09 22:38:55
5 2020-03-09 22:38:55
6 2020-03-09 22:38:55
7 2020-04-09 22:38:55
8 2020-04-09 22:38:55
9 2020-05-09 22:38:55
我正在尝试这个查询
SELECT ut.id, Month(FROM_UNIXTIME(ut.created_at)), Count(*)
from $userTable ut
where FROM_UNIXTIME(ut.created_at) >= CURDATE() - INTERVAL 1 YEAR
GROUP BY Month(FROM_UNIXTIME(ut.created_at));
3条答案
按热度按时间ncgqoxb01#
select中使用的所有非聚合函数的列都需要分组,ut.id不是group,在您的情况下,应该从select中删除
尝试
ubbxdtey2#
如果要混合过去12个月的今年和去年的数据,可以使用:
注:假设
FROM_UNIXTIME()
实际上是必要的。它还使用一个方便的mysql快捷方式进行条件聚合。agxfikkp3#
您可以按年份分组,按月份求和,如下所示: