sqlServer 分组后自增id的实例
时间: 2023-10-01 13:09:25 浏览: 168
SqlServer 在事务中获得自增ID的实例代码
假设有一个名为 `students` 的表,其中包含以下字段:
- `id`:自增的主键
- `name`:学生姓名
- `age`:学生年龄
- `gender`:学生性别
现在我们需要对学生按照年龄进行分组,并在每个分组内按照姓名的字典序进行排序,并为每个分组内的学生分配一个自增的编号。
可以使用以下 SQL 语句实现:
```sql
SELECT
ROW_NUMBER() OVER (PARTITION BY age ORDER BY name) AS group_id,
name,
age,
gender
FROM
students
ORDER BY
age, name;
```
在这个 SQL 语句中,我们使用了 `ROW_NUMBER()` 函数来为每个分组内的学生分配一个自增的编号。其中,`PARTITION BY` 子句指定了按照哪个字段进行分组,`ORDER BY` 子句指定了在每个分组内按照哪个字段进行排序。
最后,我们按照年龄和姓名的字典序对结果进行了排序。
阅读全文