sqlServer 分组后自增id
时间: 2023-09-17 13:06:28 浏览: 160
MySQL分表自增ID问题的解决方法
在 SQL Server 中,可以使用 ROW_NUMBER() 函数来为每个分组生成自增的 ID。以下是一个示例查询:
```
SELECT
ROW_NUMBER() OVER (PARTITION BY column1, column2 ORDER BY column3) AS id,
column1,
column2,
column3
FROM table_name
```
在上面的查询中,我们对 table_name 表进行分组,分组依据是 column1 和 column2 列的值。每个分组内,按照 column3 列的值进行排序。然后使用 ROW_NUMBER() 函数为每个分组内的行生成自增的 id。
注意,这里的 id 是在查询结果中生成的,不会影响原表的数据。如果需要将生成的 id 插入到新的表中,可以使用 INSERT INTO SELECT 语句。例如:
```
INSERT INTO new_table (id, column1, column2, column3)
SELECT
ROW_NUMBER() OVER (PARTITION BY column1, column2 ORDER BY column3) AS id,
column1,
column2,
column3
FROM table_name
```
阅读全文