【发布时间】:2021-05-19 02:18:53
【问题描述】:
我正在开发 SQL Server 2014。
我有如下数据:
datetime Value
2020-11-27 11:20:20.0000000 0
2020-11-27 11:21:20.0000000 0
2020-11-27 11:22:20.0000000 1
2020-11-27 11:23:20.0000000 1
2020-11-27 11:24:20.0000000 2
2020-11-27 11:25:20.0000000 2
2020-11-27 11:26:20.0000000 2
2020-11-27 11:27:20.0000000 1
2020-11-27 11:28:20.0000000 1
2020-11-27 11:29:20.0000000 1
2020-11-27 11:30:20.0000000 2
2020-11-27 11:31:20.0000000 null
2020-11-27 11:32:20.0000000 2
我需要:
datetime Value
2020-11-27 11:20:20.0000000 0
2020-11-27 11:22:20.0000000 1
2020-11-27 11:24:20.0000000 2
2020-11-27 11:27:20.0000000 1
2020-11-27 11:30:20.0000000 2
2020-11-27 11:31:20.0000000 null
2020-11-27 11:32:20.0000000 2
我可以有十万行,所以我还需要一些高效的东西。我尝试与LAG()、rank()、first() 合作,但我从未得到预期的结果。
【问题讨论】:
-
请解释你预期结果的逻辑。
-
“我尝试与
LAG()、rank()、first()合作,但我从未得到预期的结果。” 然后向我们展示这些尝试并解释为什么它们没用。first()也不是 T-SQL 函数。 -
@MarkRotteveel 需要的逻辑在帖子标题里
-
@iamdave 对我来说,这听起来像是一个没有成功的尝试实现。口头解释所需的解决方案很有帮助,因为它提供的问题框架与纯粹面向解决方案的描述不同。
-
@MarkRotteveel 然而,如果你将这个逻辑应用于示例数据,你会得到想要的结果。
标签: sql sql-server sql-server-2014