【发布时间】:2014-12-24 10:46:48
【问题描述】:
我正在使用 SQL Server 2008 R2,试图计算移动平均线。对于我认为的每条记录,我想收集之前 250 条记录的值,然后计算此选择的平均值。
我的视图栏如下:
TransactionID | TimeStamp | Value | MovAvg
----------------------------------------------------
1 | 01.09.2014 10:00:12 | 5 |
2 | 01.09.2014 10:05:34 | 3 |
...
300 | 03.09.2014 09:00:23 | 4 |
TransactionID 是独一无二的。对于每个TransactionID,我想计算前 250 条记录的列值的平均值。因此对于 TransactionID 300,收集前 250 行中的所有值(视图按 TransactionID 降序排序),然后在列 MovAvg 中写入这些值的平均值。我希望收集一系列记录中的数据。
【问题讨论】:
-
查看
PARTITION BY和ROW_NUMBER -
谢谢。你有什么建议吗?
-
@RunW 相同的事务 id 以不同的值重复,除了事务 id 是否有时间戳列或身份列?
-
@RunW,你能提供示例数据吗?如果事务 id 是唯一的,你将如何拥有相同 id 的 250 条以前的记录?
-
@RunW 如果您编辑问题并包含示例数据,您将能够对其进行更多格式化。此外,并不是每个人都会阅读 cmets,因此在阅读问题并决定是否要回答时,它会对其他人有所帮助。
标签: sql tsql sql-server-2008-r2 window-functions moving-average