【发布时间】:2019-03-26 17:32:25
【问题描述】:
有一个3列的表,每2分钟生成一条新记录。
ID:按顺序为每条记录生成一个ID(按时间顺序以及日期和时间戳)
时间:日期和时间戳(每 2 分钟运行一次)
标志:0 或 1(1 表示好 0 表示坏)
我想写一个条件来检查标志是 0 还是 1 最后 8 分钟,前 4 分钟,后 4 分钟,后 8 分钟
原表:
MONITORID CREATEDATETIME Flag
209263 26/3/2019 16:56 1
209262 26/3/2019 16:54 1
209261 26/3/2019 16:52 1
209260 26/3/2019 16:50 1
209259 26/3/2019 16:48 1
209258 26/3/2019 16:46 1
209257 26/3/2019 16:44 1
209256 26/3/2019 16:42 1
209255 26/3/2019 16:40 1
209254 26/3/2019 16:38 1
209253 26/3/2019 16:36 1
209252 26/3/2019 16:34 1
209251 26/3/2019 16:32 1
209250 26/3/2019 16:30 1
209249 26/3/2019 16:28 1
209248 26/3/2019 16:26 1
209247 26/3/2019 16:24 1
209246 26/3/2019 16:22 1
209245 26/3/2019 16:20 1
209244 26/3/2019 16:18 1
最终结果应如下所示:
MONITORID CREATEDATETIME Flag Flag_+4_-4 Flag_+0_-8
209263 26/3/2019 16:56 1 3 5
209262 26/3/2019 16:54 1 4 5
209261 26/3/2019 16:52 1 5 5
209260 26/3/2019 16:50 1 5 5
209259 26/3/2019 16:48 1 5 5
209258 26/3/2019 16:46 1 5 5
209257 26/3/2019 16:44 1 5 5
209256 26/3/2019 16:42 1 5 5
209255 26/3/2019 16:40 1 5 5
209254 26/3/2019 16:38 1 5 5
209253 26/3/2019 16:36 1 5 5
209252 26/3/2019 16:34 1 5 5
209251 26/3/2019 16:32 1 5 5
209250 26/3/2019 16:30 1 5 5
209249 26/3/2019 16:28 1 5 5
209248 26/3/2019 16:26 1 5 5
209247 26/3/2019 16:24 1 5 4
209246 26/3/2019 16:22 1 5 3
209245 26/3/2019 16:20 1 4 2
209244 26/3/2019 16:18 1 3 1
我们想出这个逻辑的原因是看过去 8 分钟是否一切正常。然后将其汇总为每日级别,以显示一整天是否良好。
非常感谢任何帮助!
【问题讨论】:
-
到目前为止,您自己尝试过什么来解决这个问题?你能分享你的尝试吗?时间戳总是每 2 分钟一次吗?
-
我无法实现这个逻辑,是的,它每2分钟记录一次。
-
我们很高兴您在这里,我们希望帮助您修复代码,而不是为您编写代码。
-
你的尝试没有成功很好@Toros91,但向我们展示你所做的尝试仍然很重要。可能是您的尝试非常接近目标。例如,您是否考虑过使用
LAG?ROWS BETWEEN呢? -
@GeorgeMenoutis microsoft.com/en-au/sql-server/sql-server-2008
标签: sql sql-server