Pour quoi cette req. ne foctionne pas
Merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT n_dept,COUNT(*) FROM emp GROUP BY n_dept HAVING COUNT(*) = (SELECT MAX(COUNT(*)) FROM emp GROUP BY n_dept) ;
Pour quoi cette req. ne foctionne pas
Merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT n_dept,COUNT(*) FROM emp GROUP BY n_dept HAVING COUNT(*) = (SELECT MAX(COUNT(*)) FROM emp GROUP BY n_dept) ;
COUNT(*) compte le nombre d'élément dans un regroupement.
MAX retourne le maximum dans un regroupement.
Tu ne peux donc pas avoir les 2 imbriqués.
En ordonnant les éléments par n, le maximum est le premier élément.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 SELECT n_dept,COUNT(*) as nb FROM emp GROUP BY n_dept HAVING nb = (SELECT COUNT(*) as n FROM emp GROUP BY n_dept ORDER BY n DESC LIMIT 1) ;
Comme on ceux que ce maximum, on limite lies réultats à 1.
Par ailleurs, lorsque qu'une requête ne fonctionne pas, pourrais-tu indiquer ce que retourne la requête (résultats ne correspondants pas aux attentes et/ou messages d'eurreurs).
C'est même pas obligé de faire une sous-requête, un order by devrait suffire.
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT n_dept, COUNT(*) AS nb FROM emp GROUP BY n_dept ORDER BY nb DESC LIMIT 1;
Partager