case when ,MAX(),group by

case when用与新增列

case when ,MAX(),group by
可以看到,这样无法只保留一行语文、数学、英语的成绩

为了保留一行成绩信息,引入group by 分组

case when ,MAX(),group by
这样就会出现只检索分组字段的第一条记录,这样就抹掉了其他两门课的成绩。

引入max()函数,改变这个难题

case when ,MAX(),group by
可以看出,每个人都取得了全部的成绩,因为在使用case when时,每个学生新增三列,只有一个是有值的,通过取最大值,分组后将最大值放到这一行记录上。

希望对你有所帮助,措辞能力有限,见谅!