SQL Server 2019表中非唯一Count列重新编号问题
解决方案:SQL Server 2019中按分组重新编号Count列
1. 先验证预期结果
在执行更新前,你可以先通过查询确认新编号是否符合需求:
SELECT date, Location, Store, [Count] AS OriginalCount, -- 按date、Location、Store分组,每组内从1开始连续编号 ROW_NUMBER() OVER (PARTITION BY date, Location, Store ORDER BY [Count] ASC) AS NewCount FROM YourTableName;
说明:
- 替换
YourTableName为你的实际表名 PARTITION BY指定分组依据,ORDER BY [Count] ASC保证按原Count值的升序生成连续编号,如果需要按其他逻辑排序(比如行的插入顺序),可修改此处的排序字段
2. 执行更新操作
确认结果正确后,使用CTE(公共表表达式)更新原表的Count列:
WITH UpdatedCounts AS ( SELECT [Count], ROW_NUMBER() OVER (PARTITION BY date, Location, Store ORDER BY [Count] ASC) AS NewCount FROM YourTableName ) UPDATE UpdatedCounts SET [Count] = NewCount;
注意:
- Count是SQL Server的保留关键字,所以必须用方括号
[Count]包裹 - 执行更新前建议备份数据,避免意外错误
内容的提问来源于stack exchange,提问作者joshAU
相关产品推荐
相关产品推荐

