これは、テーブルである間:SQLループ
Order_ID|Priority|Status
A |3 |Normal
A |4 |Urgent
B |6 |Urgent
B |7 |Normal
C |8 |Normal
C |9 |Urgent
は、どのように私は、行の優先順位は、そのIDの方が高いORDER_IDとステータスを選択しますか?たとえば、この場合には、上記のデータ特定のクエリの出力は次のようになります。SQLしまうと、これを行うに
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;
今後の参考として、これらのタイプの質問に対して、コピー+ペーストが可能なDDLおよびDMLステートメントを提供して、作成時間の短縮されたより良い回答を促すことをお勧めします。たとえば、一意制約(order_id、priority)がある場合、一意制約(order_id、priority、create_date)がある場合(つまり、優先順位が変更されたときを示すcreate_dateがあった場合) )、または一意の制約がありません。 – jeff6times7