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