Несколько других опций для вас.
Вы можете попробовать простой подход, основанный на rownum
select *
from (
SELECT pnumber, count(*) cnt
FROM works_on
GROUP BY pnumber
order by cnt
)
where rownum < 2
Или использовать аналитическую функцию RANK
.Функции DENSE_RANK
и ROW_NUMBER
будут работать аналогично (но каждая немного по-разному.
SELECT *
FROM (
SELECT pnumber, cnt, rank() over (order by cnt) as my_rank
from (
SELECT pnumber, count(*) cnt
FROM works_on
GROUP BY pnumber
)
)
WHERE my_rank = 1