Mysql实现分组排序

 

数据:

studenNostudentNameclassNoclassName
2018140101张三140114级一班
2018140111孙一140214级二班
2018140121李二140214级二班
2018140102钱一140114级一班
2018140104赵一140114级一班
2018140123周一140214级二班

 

目标:按班按学号分组排序

实现过程:

设置变量存储班级号,同一班级号,rownum递增,否则,rownum为1

SELECT
IF (
    @classno = a.classNo ,@rownum :=@rownum + 1 ,@rownum := 1
) AS rownum,@classno:=a.classNo,
 a.*
FROM
    stu_class_rel a,
    (
        SELECT
            @rownum := 0 ,@classno := NULL
    ) b
ORDER  BY a.classNo,a.studenNo ASC

sql运行结果:

rownum@classno:=a.classNostudenNostudentNameclassNoclassName
114012018140101张三140114级一班
214012018140102钱一140114级一班
314012018140104赵一140114级一班
114022018140111孙一140214级二班
214022018140121李二140214级二班
314022018140123周一140214级二班

@identify --取值;@identify:= --赋值

 

 


版权声明:本文为MayWendy原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。