计算sql server中每天的平均值

时间:2018-02-10 20:46:19

标签: sql sql-server

希望有人可以通过以下查询帮助我,因为我在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 (表格中的每一天都是这样)

希望这是有道理的。

此致 德克

3 个答案:

答案 0 :(得分:2)

试试这个:

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

答案 1 :(得分:0)

您可以将当天的总和除以24或小时数:

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

或者,如果缺少的小时数应计为0,则使用24代替count(distinct)

答案 2 :(得分:0)

尝试:

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