Salut,
il ne faut pas imbriquer les group by !
Il faut passer par une sous-requete de référence ,
Voici le test en Transact-SQL (sql-server) :
-- Exemple de table avec quelques données
declare @employe table(nom varchar(35), dept varchar(10), salaire money)
insert into @employe values('nom1', '13', 1000)
insert into @employe values('nom2', '13', 1500)
insert into @employe values('nom3', '27', 2000)
insert into @employe values('nom4', '10', 1200)
insert into @employe values('nom5', '75', 900)
insert into @employe values('nom6', '75', 2500)
-- Requete avec une reference à une sous-requete (appelée ref)
select
t1.nom as 'NOM',
t1.salaire as 'SALAIRE',
ref.dept as 'DEPT',
ref.avgSalaire as 'SALAIRE MOYEN DU DEPT'
from
@employe t1,
(select t2.dept,
avg(t2.salaire) as 'avgSalaire'
from @employe t2
group by t2.dept) as ref
where
t1.dept = ref.dept
and t1.salaire >= ref.avgSalaire
order by t1.dept
-- Le résultat est :
NOM SALAIRE DEPT SALAIRE MOYEN DU DEPT
-----------------------------------------------------------------
nom4 1200.0000 10 1200.0000
nom2 1500.0000 13 1250.0000
nom3 2000.0000 27 2000.0000
nom6 2500.0000 75 1700.0000