用于计算3.5个月范围内每天注册用户的查询

时间:2017-06-19 06:33:57

标签: mysql database

我有一个名为“users”的表,其中用户注册并且注册日期保存为“created_on”。 我想写一个查询,显示2017年3月1日至2017年6月15日期间每天有多少用户在我们的网站上注册。

不幸的是我不能。

结果显示如下:

Date           Count
01-03-2017     232
02-03-2017     422
03-03-2017     531
...

2 个答案:

答案 0 :(得分:2)

这个问题是日历表派上用场的一个很好的例子。在下面的查询中,我假设存在一个包含2017年3月1日至2017年6月15日所有日期的表格。此表格的内联形式如下所示:

SELECT '2017-03-01' AS Date UNION ALL
SELECT '2017-03-02' UNION ALL
-- ...
SELECT '2017-06-15'

假设您有一个日历表,您可以将其连接到当前表以获取计数:

SELECT
    c.Date, COUNT(t.created_on) AS signup_count
FROM calendar c
LEFT JOIN yourTable t
    ON c.Date = t.created_on
GROUP BY Date

请注意,此处可能需要日历表,因为可能有几天没有人注册。在这种情况下,原始表本身不包含足够的信息来生成您期望的输出。

答案 1 :(得分:1)

SELECT created_on,COUNT(*) 
FROM users 
WHERE created_on BETWEEN '2017-03-01' AND '2017-06-15' 
GROUP BY DATE(created_on)

尝试以上查询。

希望这会对你有所帮助。