[英]Oracle SQL Query Get Value at Max Date
數據:
| ORIGL_ORDER | ORDER | ITEM | DATE | WHSE | QTY |
| ----------- | ----- | ---- | ---------- | ---- | --- |
| 001 | 107 | 9 | 12/29/2020 | 7 | 6 |
| 001 | 110 | 9 | 12/30/2020 | 1 | 4 |
| 001 | 113 | 9 | 12/30/2020 | 3 | 2 |
| 007 | 211 | 3 | 12/20/2020 | 6 | 1 |
| 007 | 219 | 3 | 12/19/2020 | 5 | 3 |
| 018 | 390 | 8 | 12/25/2020 | 2 | 1 |
原始期望結果:
| ORIGL_ORDER | ORDER | ITEM | MAX_DATE | WHSE |
| ----------- | ----- | ---- | ---------- | ---- |
| 001 | 113 | 9 | 12/30/2020 | 3 |
| 007 | 211 | 3 | 12/20/2020 | 6 |
| 018 | 390 | 8 | 12/25/2020 | 2 |
原始問題:對於每個 ORIGL_ORDER 和 ITEM,我想獲取 max(DATE) 和與 max(Date) 對應的 WHSE。 如果有多個訂單具有相同的 max(DATE),則 select 是最大的訂單號。
新的期望結果:
| ORIGL_ORDER | ORDER | ITEM | MAX_DATE | WHSE | TOTAL_QTY |
| ----------- | ----- | ---- | ---------- | ---- | --------- |
| 001 | 113 | 9 | 12/30/2020 | 3 | 12 |
| 007 | 211 | 3 | 12/20/2020 | 6 | 4 |
| 018 | 390 | 8 | 12/25/2020 | 2 | 1 |
這回答了問題的原始版本。
只需使用row_number()
:
select t.*
from (select t.*,
row_number() over (partition by ORIGL_ORDER, item order by date desc, order_number desc) as seqnum
from t
) t
where seqnum = 1;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.