使用自定义秩和大小写的最高维度

gblwokeq  于 2021-08-09  发布在  Java
关注(0)|答案(1)|浏览(257)

我想计算一个学生的最高课程:课程水平博士>硕士>证书

Table A:
Student | Program
Student 1|A.PhD
Student 1|B.MA
Student 2|A.CERT
Student 2|B.MA

Output
Student  | Highest Program
Student 1|A.PhD
Student 2|B.MA

我尝试将自定义等级分配给程序级别,然后取等级的最小值,但是我缺少一些东西。有人能建议一个更好的方法来达到这个结果吗

e0uiprwp

e0uiprwp1#

一种方法是 coalesce() 还有一些聪明:

select student,
       coalesce(max(case when program = 'A.PhD' then program end),
                max(case when program = 'B.MA' then program end),
                max(case when program = 'A.Cert' then program end)
               ) as highest_program
from a
group by student;

相关问题