按星期几的SQL查询平均值

时间:2016-04-22 18:49:44

标签: sql dayofweek

我正在尝试设计一个查询,它将告诉我在给定工作日完成的平均程序数以及整个时间段内该工作日的程序总数。我开发的查询看起来很有效,但值没有正确加起来。

SELECT [Day], COUNT(*) AS "Week Day Count", AVG(Totals) AS [Avg]
FROM
(
    SELECT 
  w = DATEDIFF(WEEK, 0, CompleteDate),
      [Day]  = DATENAME(WEEKDAY, CompleteDate),
      Totals = COUNT(*)
    FROM dbo.[order]
      WHERE CompleteDate Between '2015-01-01' AND '2016-04-22'
            AND PlacerFld2 IN ('CT','SAMR')
            AND OrderStatusID = '2'
    GROUP BY 
        DATEDIFF(WEEK, 0, CompleteDate),
        DATENAME(WEEKDAY, CompleteDate),
        DATEPART(WEEKDAY, CompleteDate)
  ) AS q
GROUP BY [Day]
ORDER BY [Day];

我觉得平均结果是正确的,但是,"周日计数"并没有像我想象的那样高,也许它只是我计算它的方式。

当我将星期日计数中的值加起来时,大概是365,但是当我执行下面的查询时,我得到大约1750:

SELECT COUNT(*) AS "Total 2015-2016"
FROM [order]
WHERE CompleteDate Between '2015-01-01' AND '2016-04-22'
            AND PlacerFld2 IN ('CT','SAMR')
            AND OrderStatusID = '2'

1 个答案:

答案 0 :(得分:1)

我怀疑你确实想要总数的总和

SUM(Totals) AS "Week Day Count"

您的查询是(我认为)计算每个工作日数据的天数。

相关问题