Bonjour,
Celà fait plusieurs fois que je tombe sur un même problème en SQL et j'ai jamais compris pourquoi ?
Prenons une table Employee avec
emp_id PK
salary
dept_id FK
dept_id FK => est la cle étrangère issue de la table Department.
Si on me demande de trouver le total des salaires pour chaque département
Je peux faire
Maintenant on me demande de trouver le departement qui a le total des salaires le plus élevé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT dept_id, SUM(salary) FROM employee GROUP BY dept_id
Je fais donc
Et j'obtiens donc le résultat suivant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT MAX(SUM(salary)) FROM employee GROUP BY dept_id
MAX(SUM(salary))
12345679
Mais moi je voudrais aussi obtenir la colonne dept_id qui me permettra d'afficher à quel departement correspond ce max.
donc j'essaie de faire:
et là j'ai la fameuse erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT dept_id, MAX(SUM(salary)) FROM employee GROUP BY dept_id
NOT A SINGLE GROUP FUNCTION
Et j'arrive pas à comprendre pourquoi![]()
Partager