ORACLE
supports common table expression and windowing functions,
WITH employees_sal
AS
(
SELECT emp_id,
emp_sal,
dept_id,
DENSE_RANK() OVER(PARTITION BY dept_id ORDER BY emp_sal DESC) ranks
FROM employee
)
SELECT emp_id, emp_sal, dept_id
FROM employees_sal
WHERE ranks = 1