Sr Na Ra Min Max
1 cg 1 0.00 0.00
2 sg 1 0.00 0.00
3 cg 2 10.00 0.00
4 sg 2 10.00 0.00
5 cg 3 100.00 0.00
6 sg 3 100.00 0.00
7 cg 4 1000.00 0.00
8 sg 4 1000.00 0.00
需要输出
Sr Na Ra Min Max
1 cg 1 0.00 9.00
2 sg 1 0.00 9.00
3 cg 2 10.00 99.00
4 sg 2 10.00 99.00
5 cg 3 100.00 999.00
6 sg 3 100.00 999.00
7 cg 4 1000.00 0.00
8 sg 4 1000.00 0.00
最大cloumn需要根据最大值列更新的Ra组最小值第二最高值-1进行更新。
答案 0 :(得分:1)
一种方法是对表进行更新自联接。连接条件是当前Ra
值比Ra
值小1,该值来自我们想要取最小值减去1的行。这很好用,因为最终的Ra
值不会加入任何东西,所以它的最大值将保持为零。
WITH cte AS (
SELECT DISTINCT Ra, Min
FROM yourTable
)
UPDATE t1
SET t1.Max = t2.Min - 1
FROM yourTable t1
INNER JOIN cte t2
ON t1.Ra = t2.Ra - 1;
我们也可以在这里使用LEAD
或LAG
,但这更大程度上取决于您使用的SQL Server版本,您从未告诉过我们。