MySql 分组 获取每组最新的一条数据


MySql 分组 获取每组最新的一条数据

前提:学生成绩表如下

image-20220321123800495

问题描述:获取每门科目成绩最高的记录,即取出 语文成绩最高(id=3)、数学成绩最高(id=4)的两条数据

解决方案:先按成绩(grade)降序,在进行分组

注意 :DISTINCT(s.id) tid 必需

SELECT * 
FROM (
    SELECT DISTINCT(s.id) tid, s.*  FROM `student` s
    ORDER BY s.grade DESC
) t
GROUP BY t.`subject`

结果:

image-20220321124234069


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM