MYSQL按ID分组,但基于最近一年

MYSQL按ID分组,但基于最近一年,mysql,Mysql,我有一张表,上面有以下内容: StudID Name Year SubjectID SubjectName MTFlag 51280 ALOYSIUS 2019 42 CHINESE LANGUAGE 1 51280 ALOYSIUS 2020 70 ENGLISH LANGUAGE 0 51280 ALOYSIUS 2020 95

我有一张表,上面有以下内容:

StudID  Name        Year    SubjectID   SubjectName             MTFlag
51280   ALOYSIUS    2019    42          CHINESE LANGUAGE        1
51280   ALOYSIUS    2020    70          ENGLISH LANGUAGE        0
51280   ALOYSIUS    2020    95          CHINESE B               1
51280   ALOYSIUS    2020    75          MATHEMATICS             0
51290   AMIL        2020    70          ENGLISH LANGUAGE        0
51290   AMIL        2020    85          MALAY LANGUAGE          1
51290   AMIL        2020    75          MATHEMATICS             0
51290   AMIL        2019    59          MALAY LANGUAGE          1
我需要一个查询,这样它将根据StudID分组,找到MTFlag=1的主题,并根据最近一年显示主题ID和主题名称

因此,最终结果应该只显示:

谢谢你的帮助。 谢谢。

对于MySQL 8+

选择不同的 斯图迪, 名称 按学生年划分的最大年数, 第一个值按学生顺序按年份分类, 按StudID顺序按年份分区上的第一个\u值SubjectName描述SubjectName, 1 MTFlag 从测试 何处为MTFlag; 对于MySQL 5.x

选择t1* 从测试t1开始 自然连接选择t2.StudID,MAXt2.Year 从测试t2开始 其中t2.MTFlag 组别:1 t3 其中t1.MTFlag
到目前为止,您尝试了什么?我按StudID进行了分组,并且能够按MTFlag进行筛选,但不知道如何仅提取最新年份信息:选择StudID,maxName作为名称,maxYear作为年份,maxcase MTFlag=1,然后SubjectID作为SubjectID结束,maxcase MTFlag=1,然后SubjectName作为SubjectName结束。感谢您的响应。从小提琴上看,它适用于MySQL 8.0,但不适用于5.7——我需要使用的版本是5.7.19。能有一个同样适用于5.7的查询吗?@MengHai应该在问题的开头指定版本…@MengHai答案根据您的版本更新。非常感谢Akina
51280 ALOYSIUS    2020    95          CHINESE B               1
51290 AMIL        2020    85          MALAY LANGUAGE          1