Mysql實現分組排序

2021-09-04 10:49:41 字數 1203 閱讀 8930

資料:

studenno

studentname

classno

classname

2018140101

張三1401

14級一班

2018140111

孫一1402

14級二班

2018140121

李二1402

14級二班

2018140102

錢一1401

14級一班

2018140104

趙一1401

14級一班

2018140123

周一1402

14級二班

目標:按班按學號分組排序

實現過程:

設定變數儲存班級號,同一班級號,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

) border  by a.classno,a.studenno asc

sql執行結果:

rownum

@classno:=a.classno

studenno

studentname

classno

classname

11401

2018140101

張三1401

14級一班

21401

2018140102

錢一1401

14級一班

31401

2018140104

趙一1401

14級一班

11402

2018140111

孫一1402

14級二班

21402

2018140121

李二1402

14級二班

31402

2018140123

周一1402

14級二班

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

mysql實現分組排序查詢

需求 針對於學生的考試成績需要按等級區分 考生,同時把各個等級的人員按照分數的高低排序 如下圖姓名 成績等級 分數序號 趙晴優秀991 李四優秀952 王五良好891 趙六良好872 李天良好853 王小普通781 李思普通752 建立學生成績表 student 姓名name 成績等級 level ...

mysql分組排序

sql的分組排序是乙個難點,在leetcode中是乙個hard級別的題目。筆者這兩天在工作中遇到了這麼乙個需求。取過去一段時間範圍內銷量前500的商品,然後取每個商品裡面銷量最高的sku,一共500個sku。取銷量前500的商品好求,但是這500對應的最高的sku不太容易,需要用到分組排序。筆者在工...

MySQL分組排序

emp資料表建表語句 create table emp empno int,ename varchar 40 job varchar 40 mgr int,hiredate varchar 40 sal double,comm int,deptno int 插入資料準備 insert into em...