我正在寻找从用户注册中获取某些数据。我们有从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
答案 0 :(得分:1)
根据您的SQL风格,我建议您使用current_date
SQL keyword和interval
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
子句计算六个月前开始的月份的第一天。