根据其他列 SQL 的最大值更新列 [重复]
Posted
技术标签:
【中文标题】根据其他列 SQL 的最大值更新列 [重复]【英文标题】:Update column according max value from other column SQL [duplicate] 【发布时间】:2021-10-15 16:44:30 【问题描述】:取“时间”列的最大值,我需要按标识列更新“寄存器”列组,设置寄存器 = 1,其余寄存器 = 0
初始表:
Identification | time | register
1 | 0 | 0
1 | 7 | 0
1 | 3 | 0
2 | 10 | 0
2 | 5 | 0
2 | 0 | 0
3 | 6 | 0
3 | 5 | 0
3 | 0 | 0
结束表:
Identification | time | register
1 | 0 | 0
1 | 7 | 1
1 | 3 | 0
2 | 10 | 1
2 | 5 | 0
2 | 0 | 0
3 | 6 | 1
3 | 5 | 0
3 | 0 | 0
在 SQL 2017 中,表包含数千个寄存器
【问题讨论】:
【参考方案1】:好像你想要一个CASE
表达式和一个窗口化的MAX
:
SELECT Identification,
[time],
CASE [time] WHEN MAX([time]) OVER (PARTITION BY Identification) THEN 1 ELSE 0 END AS register
FROM dbo.YourTable;
【讨论】:
以上是关于根据其他列 SQL 的最大值更新列 [重复]的主要内容,如果未能解决你的问题,请参考以下文章