Bonjour,
Sur une base de tests je fais le SELECT suivant :
Ce que je voudrais maintenant c'est obtenir le pourcentage du salaire de chaque employé par rapport à son département.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 ...
Je fais le SELECT suivant avec un alias mais ça plante.
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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
Si vous pouviez m'expliquer le comment du pourquoi de ce problème... par avance merci.
Code : Sélectionner tout - Visualiser dans une fenêtre à part 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;
Partager