后花院 | 静心思考

敦兮其若朴,旷兮其若谷

场景:有一学生成绩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