【问题标题】:SQL - returning average number of items by days of the week.SQL - 按星期几返回平均项目数。
【发布时间】:2014-11-25 14:29:55
【问题描述】:

我在下面的查询可以正常工作,并返回发货的物品、总天数和平均每天的物品数量。

SELECT A.ItemsShipped, A.TotalDays, cast(A.ItemsShipped as float)/cast(A.TotalDays as float) AS     
'Averange items shipped per day' 
FROM(SELECT
    (SELECT Count(*)
        FROM PARTNER_WORKORDER
        WHERE statusNo = 110)
        AS ItemsShipped,
    (SELECT DATEDIFF(day, MIN(orderDt),'2013-11-20 00:00:00.000')
        From PARTNER_WORKORDER)
        AS TotalDays
    )A

我现在的问题是,我怎样才能得到这个返回一周中每天平均发货的物品数量(周一平均,周二平均等...),这样它最终会返回 7 个结果.我知道每天都有查询的方法,但是在一个查询中完成所有查询的有效方法是什么?

我在这个项目中使用 MS SQLServer。

感谢任何人提供的任何帮助。

【问题讨论】:

    标签: sql sql-server average


    【解决方案1】:

    这应该可以解决您的问题。我手头没有 SQL Server 实例(所以无法验证它),但我想你明白了。

    WITH OrdersPerDay AS (
       SELECT
          CAST(orderDt as INTEGER) as OrderDay,
          COUNT(1) as OrderCount
       FROM PARTNER_WORKORDER
       GROUP BY CAST(orderDt as INTEGER)
       WHERE statusNo = 110
    )
    SELECT
      DATEPART(dw, CAST(OrderDay as DATETIME)) as WeekDay,
      AVG(OrderCount)
    FROM OrdersPerDay
    GROUP BY DATEPART(dw, CAST(OrderDay as DATETIME))
    

    【讨论】:

      猜你喜欢
      • 2016-08-16
      • 2012-05-06
      • 2020-09-09
      • 2021-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-31
      相关资源
      最近更新 更多