我正在尝试为用户注册制作每周统计信息。它应该每周工作。一周总共七天。我想在屏幕上打印一周中每天注册的用户数。
例如:
周一注册的用户数量= 38
周二注册的用户数量= 11
.... .... 此列表仅列出我们
的那一周
我创建了一个类似以下的SQL查询:
SELECT WEEKDAY(registerTime)+1, count(*)
FROM users group by WEEKDAY(registerTime)
ORDER BY WEEKDAY(registerTime)
但这个问题的结果却截然不同。此总数显示每周一在星期一注册的用户数。
答案 0 :(得分:3)
您希望仅将用户限制在本周,因此您无法获得所有内容:
SELECT WEEKDAY(registerTime)+1, count(*)
FROM users
WHERE WEEKOFYEAR(registerTime) = WEEKOFYEAR(CURDATE())
AND YEAR(registerTime) = YEAR(CURDATE())
group by WEEKDAY(registerTime)
ORDER BY WEEKDAY(registerTime);
基本上,您将年份和年份与您所需的一致。那应该够了。
答案 1 :(得分:1)
您也可以使用Php
代码来实现此目的。首先制作数天,然后通过array
每天都可以获得注册用户
function today()
{
return date("Y-m-d");
}
function last_seventh_day()
{
return date("Y-m-d",strtotime("-7 days"));
}
$days = ['Saturday','Sunday','Monday','Tuesday','Wednesday','Thursday','Friday'];//Array that stores all days
foreach($days as $day)
{
$sql = "select * FROM users where day = '$day' and date_column between " .today() . "and" .last_seventh_day() ;
}
我已经更新了我的答案。我希望这对你有用!
答案 2 :(得分:1)
试试这样:
SELECT datepart(week, registerTime), count(*) FROM Users GROUP BY datepart(week, registerTime)