Impossible d'utiliser un alias dans une opération arithmétique avec une fonction analytique?
Bonjour,
Sur une base de tests je fais le SELECT suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| SQL> select employee_id, salary, department_id, sum(salary) over (partition by department_id) TOTAL from employees order by 3
EMPLOYEE_ID SALARY DEPARTMENT_ID TOTAL
----------- ---------- ------------- ----------
200 35200 10 35200
201 104000 20 152000
202 48000 20 152000
114 88000 30 199200
115 24800 30 199200
116 23200 30 199200
117 22400 30 199200
118 20800 30 199200
119 20000 30 199200
203 52000 40 52000
120 64000 50 2125600
... |
Ce que je voudrais maintenant c'est obtenir le pourcentage du salaire de chaque employé par rapport à son département.
Je fais le SELECT suivant avec un alias mais ça plante.
Code:
1 2 3
| select employee_id, salary, department_id, sum(salary) over (partition by department_id) TOTAL, (salary/TOTAL)*100 from employees order by 3;
ERROR at line 1:
ORA-00904: "TOTAL": invalid identifier |
La requête marche avec duplication du calcul de la somme mais c'est moche comme code et je pense que le calcul du total par département est alors effectué deux fois.
Code:
select employee_id, salary, department_id, sum(salary) over (partition by department_id) TOTAL, (salary/sum(salary) over (partition by department_id))*100 from employees order by 3;
Si vous pouviez m'expliquer le comment du pourquoi de ce problème... par avance merci.