SQL获取最近六个月注册数据

时间:2017-11-08 16:27:02

标签: mysql sql

我正在寻找从用户注册中获取某些数据。我们有从2013年到现在的数据,但我需要过去六个月中每月有多少用户注册的数据。

我不知道从哪里开始启动SQL查询,因为到目前为止我所做的都是错误的,并没有提出我需要的东西。

我有一个c_date (CURRENT_TIMESTAMP)列,其中包含用户注册的日期。

我所要做的就是获取一个月的数据

SELECT 
    COUNT(c_date) AS total
FROM
    accounts
WHERE
    c_date BETWEEN '2017-05-01 00:00:00' AND '2017-05-31 23:59:59'

我正在使用MySQL

3 个答案:

答案 0 :(得分:1)

根据您的SQL风格,我建议您使用current_date SQL keywordinterval datatype

where c_date >= current_date - interval '180 day'

答案 1 :(得分:0)

  I don't know what system you're using but here is how you might do it in SQL Server.  This sums up the counts by month and year

     select datepart(month, c_date) as month, datepart(year, c_date) as year, count(*)as total
     from accounts
     where c_date > dateadd(month, -6, getdate())
     group by datepart(month, c_date), datepart(year, c_date)
     order by month desc

答案 2 :(得分:0)

您想要汇总数据。像这样:

SELECT YEAR(c_date) as yyyy, MONTH(c_date) as mm, COUNT(*) AS total
FROM accounts a
WHERE c_date >= (CURDATE() - INTERVAL (1 - DAY(CURDATE())) )- INTERVAL 6 MONTH
GROUP BY yyyy, mm;

WHERE子句计算六个月前开始的月份的第一天。