例如,我有一个员工每小时收到多少请求的表格:
员工 | 要求 | 小时 |
---|---|---|
约翰 | 12 | 中午12点 |
南希 | 5 | 中午12点 |
约翰 | 4 | 下午1点 |
我想创建一个表,其中包含 (i) 员工,(ii) 他们在所有时间收到的请求总数,除以所有员工收到的请求总数。
所以结果表看起来像:
员工 | 百分比请求 |
---|---|
约翰 | 0.76 |
南希 | 0.24 |
因为:
John 的请求总和 / 请求总数 = (12+4)/(12+4+5)=0.76
和
Nancy 的请求总和 / 请求总数 = 5/(12+4+5)=0.24
我尝试先按小时分组时对单个员工的请求求和,但我不确定如何将总请求的总和合并到一个命令中。
很容易找出总请求的总和是多少,但我只知道如何先在单独的查询中找到它,然后手动将每个员工的总请求除以总和。我希望能够在一个查询中完成。
使用窗口函数:
select employee, sum(requests) as total_requests,
sum(requests) * 1.0 / sum(sum(requests)) over () as ratio
from t
group by employee;
的* 1.0
仅仅是为了避免整数除法(假设requests
是一个整数)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句