设计 select SQL 查询
Design select SQL query
我在 table 案例中有三个预期值,严重、不严重、未知,每个 case_id
select case_id, case_seriousness
from case;
我必须构建一个 SQL 查询,每个 case_id
.
应该显示一行
如果 case_id
的行有多个值,则应根据优先级只显示一行 - 严重、不严重然后是未知。
例如严重在一行中,其余四行有非严重或未知,那么严重将是他在一条记录中显示的值。
如果有不严重和未知的记录,则应显示不严重。
因此优先级与来自 S、NS 和 UK 的类似
您可以使用如下解析函数:
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
我在 table 案例中有三个预期值,严重、不严重、未知,每个 case_id
select case_id, case_seriousness
from case;
我必须构建一个 SQL 查询,每个 case_id
.
如果 case_id
的行有多个值,则应根据优先级只显示一行 - 严重、不严重然后是未知。
例如严重在一行中,其余四行有非严重或未知,那么严重将是他在一条记录中显示的值。
如果有不严重和未知的记录,则应显示不严重。
因此优先级与来自 S、NS 和 UK 的类似
您可以使用如下解析函数:
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