我需要添加一列来显示基于业务范围和季度的收入总额,同时保持原始数据不变。第2步是通过将原始收入行除以收入总和-计算权重来计算收入百分比。
我可以在excel中轻松完成此操作,但无法在SQL中弄清楚。 感谢帮助。
因此,在我的数据中,我有1000行。列是业务范围(作为渠道对MNC),季度(作为Q319和Q419),收入,单位和零件号。
我试图使用group by function对其求和,但是它不起作用。
SELECT
FF.Quarter,
FF.CHANNEL,
FF.Units,
FF.Material,
FF.Revenue,
SUM (Case When FF.Channel = '02' and FF.Quarter = '2019Q3' then FF.Revenue when FF.Channel = '01' and FF.Quarter = '2019Q3' then FF.Revenue Else 1 End) as Revenue_SUM
FROM dbo.[Flat File] as FF
Group by FF.Quarter, FF.Channel, FF.Units, FF.Revenue, FF.Material
期望是创建一列,将每一行的加权百分比计算为%(收入除以收入总和)。
这是侧面的数据表和预期结果。我想编写一个保留原始数据的查询,并在其旁边添加两列。
答案 0 :(得分:0)
如果我理解正确,则需要一个窗口功能:
SELECT FF.Quarter, FF.CHANNEL, FF.Units, FF.Material, FF.Revenue,
SUM(FF.Revenue) OVER (PARTITION BY FF.Channel, FF.Quarter) as Revenue_SUM
FROM dbo.[Flat File] as FF;