我在select语句中有以下前三列数据,我正在尝试添加" total"柱:
Customer ReportingCategory SumOfProfit Total
ABC 1 10 60
ABC 2 25 60
ABC 4 25 60
现在,我基本上选择Customer,ReportingCategory和SumOfProfit,并按Customer,ReportingCategory和SumofProfit求和(这是从子查询中选择)。
我想添加总列,就像上面一样。因此,它将客户的整个利润总和相加,但仍保留报告类别及其各自的利润总和。这可能吗?
答案 0 :(得分:1)
您可以使用Total
将OVER()
字段添加到现有查询中:
SUM(Profit) OVER() AS Total
如果这需要是每个客户或其他一组字段的总数,您将添加PARTITION BY
:
SUM(Profit) OVER(PARTITION BY Customer) AS Total
您还可以使用子查询和其他聚合。
答案 1 :(得分:1)
尝试使用windowing function。
select your_original_columns,
sum(SumOfProfit) OVER(PARTITION BY Customer) AS 'Total'
...
现在,你可能需要你的子查询,而不是SumOfProfit,但是窗口函数的想法是返回一个不同范围的聚合,然后是你的组,这就是你想要的。
答案 2 :(得分:0)
select customer, ReportingCategory, SumOfProfit , sum(total)
from (
YOUR EXISTING SELECT
)
这样可行,如果没有,请在帖子中添加当前的选择语句。