我在表格中有以下数据
col1 col2 col3
276328 | 999999999999 | 664116
927356 | 999999999999 | 664140
927356 | 999999999999 | 664140
927356 | 999999999999 | 664159
927379 | 999999999999 | 664172
代码:
create table #table (col1 bigint, col2 bigint, col3 bigint)
insert into #table values(276328, 999999999999, 664116)
insert into #table values(927356, 999999999999, 664140)
insert into #table values(927356, 999999999999, 664140)
insert into #table values(927356, 999999999999, 664159)
insert into #table values(927379, 999999999999, 664172)
我需要将 Col2 更新为 Col3 中的值,同时对 col1 进行分组并选择 Min (col1) 以应用于该子组。
276328 和 927379 在它们自己的组中,但 927356 是一个需要将最低 col3 编号分配给 col2 的组
因此,上表已更新应如下所示:
col1 | col2 | col3
276328 | 664116 | 664116
927356 | 664140 | 664140
927356 | 664140 | 664140
927356 | 664140 | 664159
927379 | 664172 | 664172
我有 2m+ 行要更新,所以它必须是批量更新而不是循环。
我将如何编写 SQL 来更新表?