Я пытаюсь получить среднюю зарплату для отдела, а затем использовать ее, чтобы получить любого сотрудника, который зарабатывает выше среднего.
Мой запрос:
select e.first_name, e.salary, e.department_id from
employees as e
inner join departments as d
on d.id = e.department_id
where salary > (select avg(e.salary)
from employees as e
where e.department_id = d.id
group by e.department_id);
Но он возвращает только один результат, "Ian".
first_name | salary | department_id
------------+--------+---------------
Ian | 80000 | 2
(1 row)
avg
--------------------
35000.000000000000
(1 row)
id | first_name | last_name | salary | department_id
----+------------+-----------+--------+---------------
1 | John | Smith | 20000 | 1
2 | Ava | Muffinson | 10000 | 5
3 | Cailin | Ninson | 30000 | 2
4 | Mike | Peterson | 20000 | 2
5 | Ian | Peterson | 80000 | 2
6 | John | Mills | 50000 | 3
(6 rows)
id | name
----+-------------
1 | Reporting
2 | Engineering
3 | Marketing
4 | Biz Dev
5 | Silly Walks
(5 rows)
Что я делаю не так? Спасибо!