V GROUP BY
nemůžete použít název aliasu doložka. Kromě toho:Proč poddotaz? Sníží počet řádků na jeden na datum a smlouvu, takže pokud budete počítat potom získáte počet 1 za každý pár asofdate / kontrakt.
select asofdate, contract, count(*) as mycount
from public.optionsdata
group by asofdate, contract
having count(*) > 1
order by mycount desc;