gpt4 book ai didi

sql - T-SQL。如何在没有光标的情况下将 Item[i] 和 Item[i-1] 选择到同一行

转载 作者:行者123 更新时间:2023-12-01 13:04:10 25 4
gpt4 key购买 nike

我有一个没有标识字段的表。结构关于:

Date date,
SomeFK int,
Key float,
Value float

我需要能够选择不使用光标之类的东西

select Key, PrevKey, Value from ... where Key > @a and Key <= @b

假设记录集按 Key 排序,PrevKey 必须是先前记录的 Key

如果数据是这样的:

0.1, 2.0
0.2, 3.0
0.3, 5.0
0.4, 4.0

@a=0.15 和@b=0.3 的预期结果

0.2, 0.1, 3.0
0.3, 0.2, 5.0

我想做的是计算一个公式:SUM(Value[i] * (Key[i] - Key[i-1]))

最佳答案

您可以尝试的一种方法是这种 CTE 方法:

DECLARE @Data TABLE ([Key] FLOAT PRIMARY KEY, Value FLOAT)
INSERT @Data VALUES(0.1, 2.0),(0.2, 3.0), (0.3, 5.0), (0.4,4.0)

;WITH CTEData AS
(
SELECT ROW_NUMBER() OVER(ORDER BY [Key]) AS RowNo,
[Key], Value
FROM @Data
)

SELECT d1.[Key], d2.[Key] AS PreviousKey, d1.Value
FROM CTEData d1
INNER JOIN CTEData d2 ON d1.RowNo-1 = d2.RowNo

编辑刚刚看到您的 PK 不完全在上面示例假设的“ key ”上。

关于sql - T-SQL。如何在没有光标的情况下将 Item[i] 和 Item[i-1] 选择到同一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4087843/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com