数据是这样的编号 姓名 数学 语文 英语
1 aa 90 98 90
2 bb 70 60 60
3 cc 65 56 54
4 dd 45 30 90
5 ee 60 40 59
6 ff 12 12 12
7 jj 60 60 60
8 hh 90 89 34数据内容大概就是以上的表示问题就是,其实是在面试的时候见到的,具体的题目忘了,意思是这样的:
a.查询出表中两门成绩都大于60分的学员的最高成绩的一科目,如果最高的两门科目的分数相同,则查询的是编号小的一条数据。我开始想的是,需要用到distinc、case when group by max having不知道是不是对,最关键问题就是最后一个条件,然后就不会写了~~~
面试havingcase when多条件sql
1 aa 90 98 90
2 bb 70 60 60
3 cc 65 56 54
4 dd 45 30 90
5 ee 60 40 59
6 ff 12 12 12
7 jj 60 60 60
8 hh 90 89 34数据内容大概就是以上的表示问题就是,其实是在面试的时候见到的,具体的题目忘了,意思是这样的:
a.查询出表中两门成绩都大于60分的学员的最高成绩的一科目,如果最高的两门科目的分数相同,则查询的是编号小的一条数据。我开始想的是,需要用到distinc、case when group by max having不知道是不是对,最关键问题就是最后一个条件,然后就不会写了~~~
面试havingcase when多条件sql
select name,math,chinese,english from Table_1 group by name,math,chinese,english
having (sum(math)>60 and sum(chinese)>60) or (sum(english)>60 and sum(chinese)>60) or (sum(math)>60 and sum(english)>60)
) t
筛选出数据后,再用case when 嵌套 获得最终数据。