mysql:如何查询每个科目成绩最好的三个人

今天去参加一家的面试,笔试题中有这么的一道题。就是如何查询每个科目最好的三个人:

SELECT * FROM Students s WHERE (
                      SELECT COUNT(*) FROM  Students sd WHERE sd.kemu= s.kemu sd.score >= s.score) <=3 ORDER BY kemu, score DESC;

首先解释一下这样的做法,子查询的做法是查询确认每一个成绩中与本部门记录中的全部成绩做比较查询个数。如果比这个大的个数小于三个,说明这个数肯定排前三,同时拿出数值。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容