SQL - 累计销售百分比

时间:2018-04-13 23:34:28

标签: sql sum ssms

我有一个包含两列的表 - 您可以调用SalesSummary下面的表格,例如:

Rank, Sales Dollars, Cumulative Sales Percentage
1, $700, 70%
2, $200, 90%
3, $100, 100%

我想写一个查询来添加一个新列 - 累计销售百分比:

@interface GraphView : NSView
- (void)drawRect:(NSRect)dirtyRect;
@end

关键部分是累积性的,例如Rank 2条目应该是90%,因为它在$ 1000总计中加上$ 700 + $ 200来获得90%。

有什么建议吗?非常感谢您的帮助!!

2 个答案:

答案 0 :(得分:0)

如果销售额是十进制或整数,那么您可以这样计算。在添加$和%符号之前,我将销售额和百分比转换为字符串。

SELECT t1.rank,
       '$' + convert(varchar(20), t1.sales) as "Sales Dollars",
       convert(varchar(4), sum(t2.sales)*100/(select 
   sum(sales) from tbl)) + '%' as "Cumulative Sales Percentage"
FROM tbl t1
INNER JOIN tbl t2 
ON t1.rank >= t2.rank
GROUP BY t1.rank,  t1.sales
ORDER BY t1.rank;

答案 1 :(得分:0)

使用窗口功能。以下是计算累积金额和比率的方法:

select t.*,
       sum(t.sales) over (order by rank) / sum(t.sales) over ()
from t
order by rank;

注意:如果t.sales是一个整数,则除法将为0.您可以乘以1.0得到0到1之间的数字或100.0得到0到100之间的数字。