【发布时间】:2017-01-25 15:29:57
【问题描述】:
我正在处理的数据没有主键,而是按 TMC 值和日期值分组。我正在尝试做的是取 5 分钟的纪元值,然后将它们组合成一个 15 分钟的纪元,一次平均三个记录。所以 epoch 0, 1, 2 一起平均得到一个新记录,然后是 3,4,5 等等。这是一个示例表。我不知道如何正确格式化:
TMC DATE EPOCH TRAVEL_TIME_ALL_VEHICLES
113N04415 1012016 0 228
113N04415 1012016 1 228
113N04415 1012016 2 222
113N04415 1012016 3 224
113N04415 1012016 4 229
113N04415 1012016 5 223
我认为我对这段代码很接近,因为它适用于第一条记录,但第二条记录失败:
select tmc, date, avg(Travel_TIME_ALL_VEHICLES) AS TRAVEL_avg
from (select I40_2016_ALL.*,
row_number() over (order by TMC, date, epoch) as rn
from I40_2016_ALL) I40_2016_ALL
where tmc = '113n04415' and date = '1012016'
group by TMC, DATE, floor((rn - 1) / 3)
ORDER BY TMC, DATE
【问题讨论】:
-
请用您实际使用的 RDBMS 标记您的问题。 MySQL 还没有实现像
row_numberafaik 这样的窗口函数。 -
关系数据库管理系统?我正在使用 microsoft sql server management studio。
标签: sql sql-server grouping average