【发布时间】:2021-11-05 00:13:40
【问题描述】:
我有一个表 order_status
| id | order_no | seq_no | status |
|---|---|---|---|
| 1 | 123 | 1 | order received |
| 2 | 123 | 2 | order processing |
| 3 | 456 | 1 | order received |
| 4 | 789 | 1 | order received |
| 5 | 789 | 2 | order processing |
| 6 | 789 | 3 | order completed |
我想获取每个 order_no 的 max seq_no 的状态。
即:
| id | order_no | seq_no | status |
|---|---|---|---|
| 2 | 123 | 2 | order processing |
| 3 | 456 | 1 | order received |
| 6 | 789 | 3 | order completed |
我试过了:
select * from order_status where id IN
(select id from order_status where max(seq_no) group by order_no)
但 oracle db 无法识别该语句。分组依据有错误。
请帮忙。谢谢。
【问题讨论】:
-
根据您的示例数据,结果中第 1 行的结果应为 id 2。
标签: sql oracle greatest-n-per-group