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