SQL 删除每个分区的最大值

SQL Remove Maximum per partition

我不想考虑每个 ID 一行:具有多个 ORD 的 PONUMBER Table

PONUMBER ORD QTYORDER
1 1 200
1 2 100
1 3 100

您可能会注意到 QTYORDER 是其他行的总和,所以我不想考虑并删除它。在此示例中,第一行的 QTYORDER 是其他行的总和。

我在考虑 QTY 是否是每个 PONUMBER 的其他 ORD 的总和,它应该被删除。

您可以这样使用 row_number

with u as
(select *, 
row_number() over(partition by PONUMBER order by QTYORDER desc) as rn
from table_name)
select PONUMBER, ORD, QTYORDER from u
where rn <> 1;

Fiddle