我正在寻找一种实现“ Item_type”的有效方法,该方法通过对“ Type”进行分区来获取不同乘积的总和。
Product no. Item Type Item_type
Product A 11 Type 1 24
Product B 5 Type 1 24
Product B 5 Type 1 24
Product C 8 Type 1 24
Product C 8 Type 1 24
Product A 11 Type 2 20
Product D 9 Type 2 20
答案 0 :(得分:0)
基本上,您需要sum(distinct)
。我认为这不明智;它通常说明了如何生成数据的问题。
最好为总和确定一个特定的行,我们可以使用row_number()
来做到这一点:
select . . .,
sum(case when seqnum = 1 then item_no else 0 end) as item_type
from (select t.*,
row_number() over (partition by product, type order by product) as seqnum
from t
) t