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
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
Maintenant on me demande de trouver le departement qui a le total des salaires le plus élevé.

Je fais donc
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
SELECT MAX(SUM(salary))
FROM employee
GROUP BY dept_id
Et j'obtiens donc le résultat suivant
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:
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
et là j'ai la fameuse erreur
NOT A SINGLE GROUP FUNCTION

Et j'arrive pas à comprendre pourquoi