【发布时间】:2016-01-28 19:07:58
【问题描述】:
我有一个 SQL 服务器数据库,其中包含一个包含 100 个测量点的测量数据的表。每一个都以大约 5 秒的间隔进行测量。格式如下:
MeasurementPointID timestamp value
001234 03-01-2015 00:02:03 100
001234 03-01-2015 00:02:08 120
001234 03-01-2015 00:02:13 130
001234 03-01-2015 00:02:19 160
001234 03-01-2015 00:02:22 200
001236 03-01-2015 00:02:04 400
001236 03-01-2015 00:02:09 405
001236 03-01-2015 00:02:14 420
001236 03-01-2015 00:02:19 445
001236 03-01-2015 00:02:25 470
Etc.
我想知道如何通过前一个时间戳除以时间段(因为前一个时间戳)后测量值发生变化来制作视图
MeasurementPointID timestamp changeDivPeriod
001234 03-01-2015 00:02:03 0 <-- Zero would be nice here
001234 03-01-2015 00:02:08 4
001234 03-01-2015 00:02:13 2
001234 03-01-2015 00:02:19 5
001234 03-01-2015 00:02:22 13,333333
001236 03-01-2015 00:02:04 0 <-- Zero would be nice here
001236 03-01-2015 00:02:09 1
001236 03-01-2015 00:02:14 3
001236 03-01-2015 00:02:19 5
001236 03-01-2015 00:02:25 4,166666
Etc.
我该怎么做呢?首先用视图解决这个问题是否明智?
我认为将触发器添加到此表并使用计算值填充新表(而不是视图)会更快/更容易。如果是这样,我该怎么做?
【问题讨论】:
-
40/3 是 13.333333 而不是 10。行(160 和 200)和 3 秒差异
-
提示:使用适当的软件(MySQL、Oracle、DB2 等)和版本标记数据库问题很有帮助,例如
sql-server-2014。语法和功能的差异通常会影响答案。 -
谢谢。我修复了问题中的错误并添加了额外的标签。
标签: sql sql-server tsql sql-server-2012