每周统计信息的SQL查询错误
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每周统计信息的SQL查询错误相关的知识,希望对你有一定的参考价值。
我正在尝试为用户注册制作每周统计数据。它应该每周工作。一周总共七天。我想在屏幕上打印一周中每天注册的用户数。
例如:
周一注册的用户数= 38
周二注册的用户数= 11
.... ....这个清单只列出我们的那一周
我创建了一个SQL查询,如下所示:
SELECT WEEKDAY(registerTime)+1, count(*)
FROM users group by WEEKDAY(registerTime)
ORDER BY WEEKDAY(registerTime)
但这个问题的结果却截然不同。此总数显示每周一在星期一注册的用户数。
答案
您希望仅将用户限制为本周,因此您无法获得所有内容:
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);
基本上,您将一年中的一年和一周与您需要的相匹配。那应该够了。
另一答案
试试这样:
SELECT datepart(week, registerTime), count(*) FROM Users GROUP BY datepart(week, registerTime)
另一答案
您也可以使用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() ;
}
我已经更新了我的答案。我希望这对你有用!
以上是关于每周统计信息的SQL查询错误的主要内容,如果未能解决你的问题,请参考以下文章