我正在使用 sql Developer,我想要:
将工资总额添加到最后一行
新列中的百分比,它应该显示每个员工占 100% 的百分比
如何做?
select name ,sal from(
select last_name name,salary sal from employees e
where rownum <=5
)
希望输出为:
您可以使用
grouping set
来完成此操作,但这有点棘手:
select name, salary, salary / max(salary) over ()
from t
group by grouping sets ((name, salary) ());
诀窍在于,窗函数是在grouping sets
之后计算的,因此它包括总数。 因此使用
max(salary)
而不是 sum(salary)
。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
查询
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
斯韦塔·拉梅什