mysql分组排序讨教

MySql 码拜 8年前 (2016-02-08) 1197次浏览
表:
userid    username    address    english   math   class
1               张晓明          上海           70            87         1
2               黄晓明          上海           69            100         1
3               黄大明          上海           100            87         2
4               叶晓明          上海           80            90           2
要求:
获取每个班英语得分、数据得分最高的学生,并且在此基础上过滤姓名以黄开头的学生;
英语得分的重要性被数学得分的重要性高,如 a英语100,数学0,b用户英语90,数学90;这时选a用户,假如英语成绩一样才比较数学成绩;
解决方案

40

大致写法,  没装调试环境,  见谅.

SELECT t1.*,
(SELECT COUNT(*)+1 FROM tbl01 
WHERE userid=t1.userid AND (english > t1.english  
or (english=t1.english and math > t1.math))) AS g_id
FROM tbl01  t1
where username not regexp "^[黄]"

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明mysql分组排序讨教
喜欢 (0)
[1034331897@qq.com]
分享 (0)