Как насчет этого?
Select emp.*
From DBTEST.EMP emp,
(Select Avg(Salary) avg_salary, loc_id From DBTEST.EMP Group By LOC_ID) averages
Where averages.loc_id = emp.loc_id
And emp.salary < averages.avg_salary;
Это соответствует вашему требованию использования Group By
, но если бы у меня был выбор, я бы обошелся без него, например:
Select *
From DBTEST.EMP emp
Where salary <
(Select Avg(salary) From DBTEST.EMP emp2 Where emp2.loc_id = emp.loc_id);
Это было проверено, и оба запроса возвращают следующее:
"EMP_ID","NAME","SALARY","DEPT_ID","LOC_ID"
"2","Lauchnor","180000","1","1"
"1","Timmins","180000","1","1"
"11","Pitcher","116000","3","2"