SQL 条件选择与 for/while 循环

标签 sql oracle for-loop conditional-statements

这是表格:

Order_ID|Priority|Status 
A       |3       |Normal
A       |4       |Urgent
B       |6       |Urgent
B       |7       |Normal 
C       |8       |Normal
C       |9       |Urgent

如何选择 Order_ID 和 Status,其中行的优先级对于该 ID 更高?例如,在这种情况下,给出上述数据的查询输出应该是:

A - Urgent
B - Normal
C - Urgent

最佳答案

一种方法是这样的:

select order_id || ' - ' || status
from (
    select order_id, priority, status,
           rank() over (partition by order_id order by priority desc) ranking
    from table
)
where ranking = 1;

关于SQL 条件选择与 for/while 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44932542/

相关文章:

sql - 如何使用倒数第二个结果更新最后一条记录 [SQL Server]

sql - Entity Framework 中的 Row_number(按 yyy 分区)

javascript - 在使用 Vuejs 的方法中进行循环

c - for循环不会停止

sql - SQL执行(#1066)

mysql - SQL select语句优化(id,parent_id,child_ids)

eclipse - 无法从 Eclipse 启动 Weblogic 服务器

sql - 如何在临时表中强制执行 key 唯一性?

r - 如何按顺序更新评级?

javascript - 如果 SQL 中有数据则显示一个按钮,否则隐藏