在mySQL上计算去年

时间:2017-04-09 18:35:34

标签: mysql count

我想说明在某个月注册了多少人。目前,我正在使用此

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()),但我怎样才能让它在前一年有效呢?

2 个答案:

答案 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之间的列表