我希望自己能实现的目标是,将成本按唯一ID分组在一起,而不是针对与发票编号相对应的唯一ID重复执行。
当前:
Unique_ID PO# Inv# Cost
1 10 1X £500
1 10 2X £500
1 10 3X £500
1 10 4X £500
现在,PO的成本为500英镑,但是由于我拥有构成PO的发票,因此它会重复这些成本(我们有一个奇怪的要求要收回PO成本而不是发票成本)。相反,我会寻找类似的东西:
所需:
Unique_ID PO# Inv# Cost
1 10 1X £500
1 10 2X
1 10 3X
1 10 4X
这可以通过在“费用”列上使用DISTINCT来实现吗?
答案 0 :(得分:3)
您可以使用select t.*,
(case when row_number() over (partition by Unique_ID, PO#, Cost order by Inv) = 1
then cost
end) as cost
from table t;
:
{{1}}