SQL - 平均每一秒

时间:2018-04-17 07:51:34

标签: sql-server group-by average

我有两个包含半小时数据的表格,我想把两个半小时的平均值看一小时平均值。

我的表格如下:

Date(date)       HalfHour(int)      Value(dec(18,3))
2018-04-17           1                  50
2018-04-17           2                  100
....
2018-04-17           47                 100
2018-04-17           48                 200

我想要一个可以返回此内容的查询:

Date(date)       Hour(int)      Value(dec(18,3))
2018-04-17           1                  75
....
2018-04-17           24                 150

有一个ID列,但它不能用于此目的,因为它有喘气,因此是一致的。

而且我知道我必须按功能使用一组,但是我们无法弄明白。

1 个答案:

答案 0 :(得分:3)

...也许

SELECT [date]
       (HalfHour + 1) / 2 AS [Hour], --This ASSUMES HalfHour is the datatype int, due to integer maths
       AVG([Value]) As [Value]
FROM YourTable
GROUP BY [Date],       
         (HalfHour + 1) / 2;