如何获得工资满分100的百分比

问题描述 投票:0回答:4

我正在使用 sql Developer,我想要:

  • 将工资总额添加到最后一行

  • 新列中的百分比,它应该显示每个员工占 100% 的百分比

如何做?

select name ,sal from(
select last_name name,salary sal from employees e
where  rownum <=5 
)

希望输出为:

enter image description here

sql oracle-database sum window-functions
4个回答
1
投票

您可以使用

grouping set
来完成此操作,但这有点棘手:

select name, salary, salary / max(salary) over ()
from t
group by grouping sets ((name, salary) ());

诀窍在于,窗函数是在grouping sets之后计算的,因此它包括总数。 因此使用

max(salary)
而不是
sum(salary)
    


0
投票

union all

这将为您提供比率,即 

select last_name, salary, salary / sum(salary) over() salary_ratio from employee union all select null, sum(salary), 1 from employee
0

之间的值。如果你想要百分比,那么你可以乘以

1
    
您可以使用分析函数

100

0
投票

查询

RATIO_TO_REPORT

结果

WITH
    employees (name, sal)
    AS
        (SELECT 'King', 24000 FROM DUAL
         UNION ALL
         SELECT 'Kochhar', 17000 FROM DUAL
         UNION ALL
         SELECT 'De Haan', 17000 FROM DUAL
         UNION ALL
         SELECT 'Hunold', 9000 FROM DUAL
         UNION ALL
         SELECT 'Ernst', 6000 FROM DUAL)
SELECT name, sal, (ratio_to_report (sal) OVER () * 100) AS percent
  FROM employees;

加薪比例=新工资-旧工资旧工资×100新工资=卢比。 3000旧工资=卢比。 2200
458901.31
456307138
698047.230
层次分析法 =(na - oA) 1oA ×100

0
投票
桑德拉

斯韦塔·拉梅什
  1. 帕德马库玛 4.雷希米
© www.soinside.com 2019 - 2024. All rights reserved.