记忆

查询每个班级前三的同学:

 

正确查询方法:

 

SELECT * FROM t_testscore t  

  WHERE (SELECT COUNT(*) FROM t_testscore ts  WHERE t.c_class = ts.c_class and t.c_score<ts.c_score)<3  

    ORDER BY t.c_class,t.c_score DESC;

如果符合条件的最后一名有多条记录,会全部显示相同分数的多条记录。 

 

正确出处:https://blog.csdn.net/weixin_37820504/article/details/79876230

 

 

错误查询方法:(亲测,多插入几行数据即可看到效果【mysql 8.0】)

SELECT * FROM t_testscore t  

  WHERE EXISTS(SELECT COUNT(*) FROM t_testscore ts  WHERE ts.c_score>=t.c_score  GROUP BY ts.c_class  HAVING COUNT(*)<=3)  

    ORDER BY c_class,c_score DESC;

错误出处:  MySQL中查询获取每个班级成绩前三名的学生信息

 


 

posted @ 2019-02-14 17:37  暗夜云遮日  阅读(56)  评论(0)    收藏  举报