[SQL] Besoin d'aide

franchesco -  
 2Spartiate -
Salut à tous, mon problème est le suivant :
avec le schéma relationnel ci dessous on me demande de répondre en SQL aux questions 1), 2) et 3).

Employés=(matricule, nom, prénom, salaire, compagnie)
Secteur=(compagnie, ville)

1) la compagnie qui à le plus grand nombre d’employés
2) la compagnie qui paie mieux en moyenne
3) Les personnes qui gagnent plus que la moyenne des salaires de la compagnie pour laquelle elles travaillent

Je travail en mode SQL avec Access 2000.
Pour la première question j’ai écris :

Select compagnie, max( count( nom ) )
From employés
Group by compagnie ;

A l’exécution j’ai le message d’erreur suivant : Impossible d’avoir une fonction d’agrégat dans l’expression max(count(nom)).

J’ai voulu faire de même avec la deuxième question

Select compagnie, max( avg(salaire))
From emplotés
Group by compagnie ;

Mais j’ai le meme message d’erreur, Impossible d’avoir une fonction d’agrégat dans l’expression max(avg(salaire)).

N’est il pas possible de composer deux fonctions d’agrégat en SQL, ou alors se sont les limites du mode SQL sous access 2000?
Pourriez-vous me proposer une solution à ces questions?
Merci.
A voir également:

1 réponse

maily Messages postés 7560 Statut Contributeur 453
 
Bonjour!

Non, tu ne peux pas composer deux fonctions d'agrégat, du moins, je ne l'ai jamais vu...

Pour la première je proposerais:

select compagnie, count(*) as nb
From employés 
Group by compagnie 
order by nb desc; 


Et tu recupères le premier de la liste...
Pareil pour le deuxième, tu fais un order by:

Select compagnie, avg(salaire) as nb 
From emplotés 
Group by compagnie 
order by nb desc;


Et juste, un petit conseil, la prochaine fois, mets un titre un plus explicite!!
Bonne journée

 Maily   :-)))) L'hirondelle ne fait pas le printemps
mais le dromadaire fait le désert.
0
2Spartiate
 
Select hirondelle, avg(salaire) as nb
From informatique


=> maily !


<=2Spartiate=> Les hirondelles font sont bonheur... ;-)
0