二进制文件TelBill中,存储了一家电信公司的客户账单数据,请计算其中每位客户每个月的话费在他总话费中的占比。
解答:
A | B | |
1 | =file("TelBill.btx") |
![]() |
2 | =A1.cursor@b() |
![]() |
3 | =A2.groupx(ID;sum(Amount):Total;200) |
![]() |
4 | =A2.reset() |
![]() |
5 | =A2.sortx(ID) |
![]() |
6 | =join@x(A5:TelBill,ID;A3:Sum,ID) |
![]() |
7 | =A6.new(TelBill.Date:Date,TelBill.Name:Name,TelBill.Amount:Amount,Sum.Total:Total,round(Amount/Total,4):Ratio) |
![]() |
8 | =A7.fetch(200) |
![]() |
9 | >A7.close() |
![]() |
在大数据中计算占比,首先需要计算出每位客户的总话费,在数据量庞大时,汇总结果无法读入一个序表,此时可以使用游标,再将游标中的数据对齐式连接。
在A8中,仅取出了前200条结果如下: