gpt4 book ai didi

sql - 根据优先级获取不同的行?

转载 作者:行者123 更新时间:2023-12-04 14:08:53 26 4
gpt4 key购买 nike

我有一张如下表。我正在使用 oracle 10g。

TableA
------
id status
---------------
1 R
1 S
1 W
2 R

我需要获得不同的 ID 以及它们的状态。如果我查询不同的 ID 及其状态,我会得到所有 4 行。
但我应该只得到 2. 一个每个 ID。
这里 id 1 有 3 个不同的状态。在这里,我应该根据优先级只得到一行。

第一优先级是 'S' ,第二优先级是 'W',第三优先级是 'R'。

就我而言,我应该得到如下两条记录。
id  status
--------------
1 S
2 R

我怎样才能做到这一点?请帮我。

谢谢!

最佳答案

select
id,
max(status) keep (dense_rank first order by instr('SWR', status)) as status
from TableA
group by id
order by 1

fiddle

关于sql - 根据优先级获取不同的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15335700/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com