Trouver la moyenne minimum dans un Group By

cs_petitemainate Messages postés 29 Date d'inscription mardi 3 juin 2003 Statut Membre Dernière intervention 14 septembre 2009 - 27 août 2007 à 18:11
cs_petitemainate Messages postés 29 Date d'inscription mardi 3 juin 2003 Statut Membre Dernière intervention 14 septembre 2009 - 27 août 2007 à 18:37
Bonjour à tous,

Voici l'intitulé de la question ^_^
"Afficher le job ayant le salaire le plus bas"
J'ai donc une requête de ce genre

SELECT Job, avg(Salaire) FROM employes GROUP BY Job;

J'ai une liste des salaires moyens par job. Maintenant, je ne veux voir que le plus petit salaire de cette liste.
J'ai donc fait une requête (qui ne fonctionne pas) :

SELECT Job, avg(Salaire) FROM employes GROUP BY Job 
   HAVING avg(Salaire) = (SELECT min(avg(Salaire)) FROM employes GROUP BY Job);

Je n'ai pas le droit de mettre deux fonctions d'agrégation à la suite (min(avg(Salaire))) Alors je cherche comment trouver mon résultat ??? On m'a parlé d'une autre fonction qui ferait le même genre de travail, mais je ne la connais pas et je n'arrive pas à trouver avec mon ami google...

Merci de votre aide !!!

Petitemainate.

oO0OoO0Oo ><)))°> oO0OoO0OoO0Oo

1 réponse

cs_petitemainate Messages postés 29 Date d'inscription mardi 3 juin 2003 Statut Membre Dernière intervention 14 septembre 2009
27 août 2007 à 18:37
Bon j'ai trouvé la réponse à ma question, la solution est dans TOP.

Voici la requête qui permet de récupérer la moyenne minimum lorsque l'on a un Group By et utilisé une fonction d'agrégation.

SELECT TOP 1 avg(Salaire) as Sal FROM employes GROUP BY Job ORDER BY Sal asc;

NB : si on trie en décroissant, on aura la moyenne la plus haute.

Petitemainate.

oO0OoO0Oo ><)))°> oO0OoO0OoO0Oo
0
Rejoignez-nous