设计选择sql查询

plupiseo  于 2021-07-29  发布在  Java
关注(0)|答案(1)|浏览(354)

我在一个表中有三个期望值,分别是严重值、非严重值和未知值 case_id ```
select case_id, case_seriousness
from case;

我必须构建一个sql查询,每个查询应该显示一行 `case_id` .
如果有行 `case_id` 如果有多个值,则根据优先级只能显示一行-严重、非严重和未知。
e、 严重的是在一行其余四行有非严重或未知那么严重将是他在一个记录中显示的值。
如果有非严重和未知的记录,则应显示非严重。
所以优先考虑的将是来自s、ns和英国
67up9zun

67up9zun1#

可以按如下方式使用分析函数:

select case_id, case_seriousness 
  from
      (select case_id, case_seriousness, 
              row_number() over (partition by case_id 
                                 order by case case_seriousness 
                                               when 'Serious' then 1 
                                               when 'Non-Serious' then 2
                                               else 3 
                                           end ) as rn 
          from case)
where rn = 1;

或者,您也可以使用 DECODE 而不是 CASE..WHEN

相关问题