我想说明在某个月注册了多少人。目前,我正在使用此
SELECT COUNT(*)
FROM wp_users
WHERE YEAR(user_registered)=YEAR(CURDATE())
AND MONTH(user_registered)=MONTH(CURDATE()) - 2
例如,此代码将计算2个月前注册的用户数。但是,当我尝试在4个月前或更长时间制作它时会出现问题。基本上,它没有考虑前一年。
****编辑*****
我希望它只显示一个月的计数。例如仅4月,仅3月,仅2月。我现在使用的代码在2017
中使用了几个月,因为我使用的是WHERE YEAR(user_registered) = YEAR(CURDATE())
,但我怎样才能让它在前一年有效呢?
答案 0 :(得分:0)
您可以尝试以下选项:
SELECT COUNT(0)
FROM wp_users
WHERE YEAR(user_registered)=YEAR(DATE_SUB(CURDATE(), INTERVAL 4 MONTH))
AND MONTH(user_registered)= MONTH(DATE_SUB(CURDATE(), INTERVAL 4 MONTH))
使用DATE_SUB进行减法。 MySQL Doc
答案 1 :(得分:0)
如果我理解你,你想要12个月的结果吗?一个简单的解决方案是
SELECT MONTH(user_registered) as month, COUNT(*) FROM wp_users GROUP BY month;
然而,如果没有人在某个月注册,则不会返回一行。为此,您需要使用子查询,该子查询返回1到12之间的列表