【问题标题】:Update column according max value from other column SQL [duplicate]根据其他列 SQL 的最大值更新列 [重复]
【发布时间】: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 中,表包含数千个寄存器

【问题讨论】:

    标签: sql sql-server


    【解决方案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;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-13
      • 2021-11-25
      • 1970-01-01
      • 2021-10-19
      • 2022-08-18
      • 1970-01-01
      • 1970-01-01
      • 2020-02-19
      相关资源
      最近更新 更多