Если ваша версия БД 12c , вы можете использовать Ограничение строк для запросов Top-N , как показано ниже:
SELECT e.*, l.max_leaves
FROM (SELECT employeeid, count(1) as max_leaves
FROM LEAVE25
WHERE startdate >= add_months(sysdate, -1)
GROUP BY employeeid
) l JOIN
EMPLOYEE24 e
ON ( e.employeeid = l.employeeid )
ORDER BY l.max_leaves DESC
FETCH FIRST 1 ROWS WITH TIES; -- including the same highest leave owners
Если версия 11g , тогда используйте Dense_Rank и Count с вложенным запросом , как показано ниже:
SELECT e.*, l.max_leaves
FROM (SELECT employeeid, count(1) as max_leaves,
dense_rank() over (order by count(1) desc) dr
FROM LEAVE25
WHERE startdate >= add_months(sysdate, -1)
GROUP BY employeeid
) l JOIN
EMPLOYEE24 e
ON ( e.employeeid = l.employeeid )
WHERE l.dr = 1;
Демонстрация SQL Fiddle для 11g