如题..
本人尝试了半天写不出,特来讨教各位高手…求给个例子
假设有3个班级,每个班级有10个同学,本人需要找到3个同学 ,分别是这3个班级中分数最高的
本人尝试了半天写不出,特来讨教各位高手…求给个例子
假设有3个班级,每个班级有10个同学,本人需要找到3个同学 ,分别是这3个班级中分数最高的
解决方案:10分
手写代码…
SET @row=0; SET @mid=\""\""; SELECT a.分数,a.班级, a.姓名, b.rownum FROM test a INNER JOIN ( SELECT 班级, 姓名, 分数 CASE WHEN @mid = 班级 THEN @row:=@row+1 ELSE @row:=1 END rownum, @mid:=班级 MID FROM test ORDER BY 班级, 姓名, 分数 DESC ) b ON b.班级=a.班级 AND b.姓名=a.姓名 AND b.分数=a.分数 WHERE b.rownum=1;
解决方案:10分