我试图通过首先按列1, 对数据进行分组来更新表,我需要: 按列2对数据进行排序 使用顶部填充Column4列3的值(按列2排序) 列1,3,4是varchar,列3是int。 我试图用一个CTE的更新和Top为:使用聚合的分组数据的SQL更新
Update a
Set a.col4 = c.Best
From Table1 a,
(Select Top (1) Col3 as Best, Col1, Col2
From Table1
Group By Col1
Order By Col2 DESC) c
where a.Col1 = c.Col1
,但它似乎是从每个组中选择从表中的前值不会。有谁知道这里缺少什么或更简单的方法吗?
开始数据:
Col1中col2的COL3 COL4
unit101 11 unit118 NULL
unit101 13 unit125 NULL
unit101 12 unit135 NULL
unit107 11 unit168 NULL
unit107 10 unit199 NULL
所需的结果:
Col1 Col2 Col3 Col4
unit101 11 unit11 unit125
unit101 13 unit125 uni T125
unit101 12 unit135 unit125
unit107 11 unit168 unit168
unit107 10 unit199 unit168
柱4只需要具有从COL3的值,其中第2栏第是在数据的行的最大值由COL1作为分组。
哟可以提供[MCVE]的结果(http://meta.stackoverflow.com/questions/333952/why-should-i-provide-an- MCVE换什么,似乎对我将要-A-极简单的SQL查询)?如果我们可以看到输入/输出的样本,回答这样的问题更容易。 –