Не можете да използвате псевдоним в GROUP BY
клауза. Освен това:Защо подзаявката? Той намалява редовете до един за дата и договор, така че ако броите след това получавате брой 1 за всяка двойка дата/договор.
select asofdate, contract, count(*) as mycount
from public.optionsdata
group by asofdate, contract
having count(*) > 1
order by mycount desc;