我有一个表如下:
<表类>
Order_ID
Ship_num
Item_code
Qty_to_pick
Qty_picked
Pick_date
tbody><<tr>1111 1 1 3000 0 空 1111 1 2 2995 1965 2021-05-12 1111 2 1 3000 3000 2021-06-24 1111 2 2 1030 0 空 1111 3 2 1030 1030 2021-08-23 2222 1 3 270 62 2021-03-18 2222 1 4 432 0 空 2222 2 3 208 0 空 2222 2 4 432 200 2021-05-21 2222 3 3 208 208 2021-08-23 2222 3 4 232 200 2021-08-25 表类>
使用max(ship_num)
是一个好主意,但您应该使用分析版本(带有OVER
子句)。
select *
from
(
select t.*, max(ship_num) over (partition by order_id) as orders_max_ship_num
from table1 t1
) with_max
where ship_num = orders_max_ship_num
order by order_id, item_code;
您可以使用DENSE_RANK()获得此值。
查询
;with cte as (
select rnk = dense_rank()
over (Partition by order_id order by ship_num desc)
, *
from table_name
)
Select *
from cte
Where rnk =1;