Du kan ikke bruge et aliasnavn i GROUP BY
klausul. Desuden:Hvorfor underforespørgslen? Det reducerer rækkerne til én pr. dato og kontrakt, så hvis du tæller bagefter du får en optælling på 1 for hver afdato/kontrakt par.
select asofdate, contract, count(*) as mycount
from public.optionsdata
group by asofdate, contract
having count(*) > 1
order by mycount desc;