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;
我不想考虑每个 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;