Есть ли лучший способ получить максимальную (зарплату) по департаментам и убедиться, что только вы получаете те отделы, где средняя (зарплата)> 50 000? - PullRequest
0 голосов
/ 21 октября 2019

Вот первый вопрос, заданный в телефонном интервью?

В таблице сотрудников есть столбцы ID, Имя, Зарплата, Отдел. Получите мне максимальную зарплату по отделам.

Мой ответ: выберите максимальную (зарплату), отдел из группы сотрудников по отделам.

Последующий вопрос: Теперь в приведенном выше запросе я хочу получитьтолько те отделы, где средняя зарплата превышает 50 000.

Мой ответ: я буду использовать результат подзапроса для фильтрации.

Интервьюер: Есть более простой способ, вы можете попробовать сделать это без подзапроса

Ответы [ 2 ]

2 голосов
/ 21 октября 2019

Вам нужно предложение HAVING:

select max(salary), department 
from employee 
group by department
having avg(salary) > 50000
0 голосов
/ 21 октября 2019

Это очень похоже, но вы можете фильтровать записи в групповом режиме, используя пункт

Select dept,avg(salary) as sal from table group by salary having sal > 50000
...