敦兮其若朴,旷兮其若谷
场景:有一学生成绩score表,字段有id、name、score三个字段。
问:写一SQL,支持查询出前十名成绩的学生信息,如果成绩相同,则并列显示。
答案:
SELECT aa.id,aa.`name`,aa.score FROM score aa JOIN ( SELECT score FROM score GROUP BY score ORDER BY score DESC LIMIT 4 ) bb ON aa.score = bb.score
思路:子查询先按score分组,然后按降序排序,再添加LIMIT条件。然后将表中数据内连接该子查询数据即可
(通过控制子查询的limit条数,来查询前几个成绩的学生信息)
此问题同事“会长”给了我思路,再次谢过~
© 后花院 | 静心思考 | Powered by EMLOG | Theme by NIMA
友情链接:Nutcracker