sql 分组查询并新增序号

在SQL中,你可以使用ROW_NUMBER()函数来为结果集中的每一行新增一个序号。这个序号是基于某个排序条件的分区排序结果。

以下是一个简单的例子,假设我们有一个名为students的表,它有两列:class_idstudent_name。我们想为同一个班级内的学生创建一个序号,按照student_name排序:

复制代码
SELECT 
    class_id,
    student_name,
    ROW_NUMBER() OVER (PARTITION BY class_id ORDER BY student_name) AS seq_num
FROM 
    students;

在这个查询中,ROW_NUMBER()函数会为每个班级内的学生提供一个序号,序号根据学生名字的字母顺序排序。如果你想要按照其他条件排序,只需在ORDER BY子句中修改即可。