我有一个包含两列的表 - 您可以调用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%。
有什么建议吗?非常感谢您的帮助!!
答案 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之间的数字。