我需要添加一个列来显示基于业务线和季度的收入总和,同时保持原始数据不变。步骤2是通过将原始收入行除以收入计算权重之和来计算收入百分比。
在excel中我可以很容易地做到这一点,但在SQL中就搞不懂了。感谢你的帮助。
因此,在我的数据中,我有1000行。列包括业务线(如渠道与跨国公司)、季度(如Q319和Q419)、收入、单位和部件号。
我尝试使用group by函数对其求和,但不起作用。
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期望是创建一个列,该列计算每行的%权重为%(收入除以收入总和)。
下面是数据表和预期结果。我想要编写一个保留原始数据的查询,并在其旁边添加两列。

发布于 2019-09-17 01:19:38
如果我没理解错的话,你想要一个窗口函数:
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;https://stackoverflow.com/questions/57961543
复制相似问题