【发布时间】:2021-12-06 10:25:33
【问题描述】:
我正在尝试计算每行 Presto/Athena 的累积百分比。例如:如果我有这样的数据
AccountID | UserID | HolidaysTaken
ABC | A | 4
ABC | B | 6
ABC | B | 3
ABC | K | 2
ABC | K | 3
ABC | X | 1
现在运行此查询后,我得到以下结果。
SELECT AccountID, UserID, sum(HolidaysTaken) AS HolidaysTaken FROM table
WHERE AccountID = 'ABC'
GROUP BY AccountID, UserID
ORDER BY HolidaysTaken DESC
AccountID | UserID | HolidaysTaken
ABC | B | 9
ABC | K | 5
ABC | A | 4
ABC | X | 1
Total holiday taken by all users = 19
但我想再添加 2 列。
EachUserPercentage:每个用户的假期占总假期的百分比。
CumulativePercentage:EachUserPercentage 的累计值。这个我可以使用this post
AccountID | UserID | HolidaysTaken | EachUserPercentage | CumulativePercentage
ABC | B | 9 | 47.36 | 47.36
ABC | K | 5 | 26.31 | 73.67
ABC | A | 4 | 21.05 | 94.72
ABC | X | 1 | 5.26 | 100
我尝试了差异窗口函数percent_rank(), cume_dist() and ntile(),但无法正常工作EachUserPercentage。
【问题讨论】:
标签: sql amazon-athena presto