Organiser par maximum une table contenant COUNT avec MAX

Résolu
kabrice01 Messages postés 1179 Date d'inscription   Statut Membre Dernière intervention   -  
kabrice01 Messages postés 1179 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, j'ai la base suivante :
FONCTION (Numfonct, libfonct, salaire)
SERVICE (Numserv,libserv)
EMPLOYE (Numemp, nom, prenom,numfonct,numserv)

Je voudrai afficher pour chaque service, la fonction dont le nombre d'employés l'occupant est le plus grand.
Voici ma démarche :
J'ai la requête suivante :
SELECT libserv,libfonct, COUNT(numemp) 
FROM EMPLOYE INNER JOIN SERVICE ON EMPLOYE.NUMSERV=SERVICE.NUMSERV INNER JOIN FONCTION ON EMPLOYE.NUMFONCT=FONCTION.NUMFONCT
GROUP BY libserv, libfonct
ORDER BY libserv;
qui me donne les services, les fonctions ainsi que leur nombre d'employé respectif. Mais je voudrai pouvoir organiser ces données pour n'avoir que le maximum des de chaque service, mais je ne sais pas comment faire ?!
Je vous remerci de m'aider





pense à ta vie et pense à l'eternité
A voir également:

1 réponse

DelNC Messages postés 2234 Date d'inscription   Statut Membre Dernière intervention   2 004
 
Bonjour,

je ne suis pas certaine que çà marche mais essayez ceci

SELECT libserv,libfonct, COUNT(numemp)
FROM EMPLOYE INNER JOIN SERVICE ON EMPLOYE.NUMSERV=SERVICE.NUMSERV INNER JOIN FONCTION ON EMPLOYE.NUMFONCT=FONCTION.NUMFONCT
GROUP BY libserv, libfonct,
order by count(*) desc limit 1
0
kabrice01 Messages postés 1179 Date d'inscription   Statut Membre Dernière intervention   28
 
Désolé ça ne marche pas ;(. En plus Oracle ne prend pas en charge "limit"
0
kabrice01 Messages postés 1179 Date d'inscription   Statut Membre Dernière intervention   28
 
ça y est, j'ai trouvé la solution, c'est :
select libfonct,libserv,count(numemp) 
from ((employe natural join service s1) natural join fonction f1)
group by libserv,libfonct
having count(numemp)=(select max(count(numemp)) from ((employe natural join service) natural join fonction)
where libfonct=f1.libfonct group by libserv,libfonct);


Et ça fonctionnent nickelement
0