记忆
查询每个班级前三的同学:
正确查询方法:
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中查询获取每个班级成绩前三名的学生信息