Возможно, не намного проще, но от 3 до 2 запросов:
SELECT e3.name FROM employee e3
INNER JOIN (
SELECT e1.dept, AVG(e1.salary) avg_salary
FROM employee e1 INNER JOIN employee e1 ON e1.dept = e2.dept AND e2.emp_id='a10'
GROUP BY e1.dept
) t ON t.dept = e3.dept AND e3.salary > avg_salary
Уверен, что я могу уменьшить его до 1, заменив вложенный запрос другим соединением.
Может быть, попробуйте это
SELECT e1.name
FROM employee e1
INNER JOIN employee e2 ON e2.dept = e1.dept
INNER JOIN employee e3 ON e2.dept = e3.dept AND e3.emp_id='a10'
GROUP BY e1.name
HAVING AVG(e2.salary) > e1.salary