1

我有这个数据:

Contact  Customers
1        2 
2        3 
3        1 
4        6 

使用包含客户总数的变量。

该数据表示有 2 位客户与客服联系过一次,3 位客户与客服联系过两次,以此类推。

我想要另一列显示与客户服务联系 x 次或更多的客户的累积百分比。所以在这个例子中:

Contact  Customers Cumm%
1        2         100
2        3         83.3
3        1         58.3
4        6         50%

我已经尝试了几件事,但是我对 SQL 很陌生,我似乎找不到任何示例并且需要一些帮助。

如果您知道如何获得累积的客户数量,那也很好,因为我知道如何获得百分比。我的意思是:

Contact  Customers CummCustomers
1        2         12
2        3         10
3        1         7
4        6         6

提前致谢

4

2 回答 2

1

您可以使用子查询来执行此操作,如下所示:

SELECT
    Contact
,   Customers
,   (SELECT SUM(Customers) FROM myTable t2 WHERE t2.Contact >= t1.Contact) as CummCustomers
FROM myTable t1

sqlfiddle 上的演示

于 2013-11-07T09:26:31.210 回答
1

您可以使用更快的分析查询来解决您的问题。

select contact,customer,
sum(customer) over (order by contact desc) cumm_customer
from  table1 order by contact asc;

在此处查看 sqlfiddle 演示 http://sqlfiddle.com/#!4/74169/4

于 2013-11-07T11:10:47.237 回答