【问题标题】:Calculate average for each day in sql server在sql server中计算每天的平均值
【发布时间】:2018-02-10 20:46:19
【问题描述】:

希望有人可以帮助我完成以下查询,因为我的 SQL 不太好。

我有一个 SQL 表,其中每个小时都会存储特定产品的一些价格,日复一日。我想将每小时的这些价格相加,然后计算这些总和在一天中的平均值。以及表格中的每一天。

表格看起来像这样(减少到适当的字段):

Date | Time | Price
01\01\2018 | 00:00 | 100
01\01\2018 | 00:00 | 100
01\01\2018 | 00:00 | 120
01\01\2018 | 01:00 | 150
01\01\2018 | 01:00 | 150
01\01\2018 | 01:00 | 90
01\01\2018 | 02:00 | 100
01\01\2018 | 02:00 | 105
01\01\2018 | 02:00 | 98
....
02\01\2018 | 00:00 | 110
02\01\2018 | 00:00 | 87
02\01\2018 | 00:00 | 126
02\01\2018 | 01:00 | 140
....

所以对于上面的例子:

1/1/2018 -> 00:00 -> 320
1/1/2018 -> 01:00 -> 390
1/1/2018 -> 02:00 -> 303

当天的平均值:337,6(表中每一天的平均值)

希望这有意义。

问候, 德克

【问题讨论】:

    标签: sql sql-server


    【解决方案1】:

    试试这个:

    select Date, avg(price) as 'average of day'
      from
       (
        select Date, Time, sum(price) as 'price'
        from table
        group by Date,Time
       )
    group by Date
    

    【讨论】:

    • 您先生,太棒了!非常感谢!
    【解决方案2】:

    您可以总结一天,然后除以 24 或小时数:

    select date, sum(price) / count(distinct time)
    from t
    group by date
    order by date;
    

    或者,如果缺少小时数应计为 0,则使用 24 而不是 count(distinct)

    【讨论】:

      【解决方案3】:

      尝试:

      select date,time,AVG(Price) as AvgPrice
      from tablename
      group by date,time
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-02-01
        • 1970-01-01
        相关资源
        最近更新 更多