Переместите подзапрос к предложению SELECT
без ограничения 'top 2' (очевидно, будет возвращено больше строк):
select a.*,
(
select count( distinct(sal))
from emp
where sal > a.sal and a.deptno=deptno
) as tally
from emp a
Затем можно ограничить набор результатов, используя предложение WHERE
, вводящеедальнейший уровень, например
select b.*
from (
select a.*,
(
select count( distinct(sal))
from emp
where sal > a.sal and a.deptno=deptno
) as tally
from emp a
) b
where b.tally < 2
order
by b.deptno, b.tally;
Выше приведен более подробный, но, возможно, легче следовать логике.