每周统计信息的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查询错误的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server统计信息:问题和解决方式

sql server 统计信息

Atitit sql计划任务与查询优化器--统计信息模块

如何显示每周发生并满足某些条件的记录总数 SQL

sql 两个内衬为您的查询/会话启用SQL统计信息

如何在 SQL Server 2005/2008 中清除查询执行统计信息