Dit is niet mogelijk omdat in sql de volgorde van uitvoering eerst is, de where-clausule en vervolgens de select. Op het moment dat de clausule wordt uitgevoerd, weet het niet wat je hebt gedefinieerd als een alias en dus krijg je die fout.
U moet uw zoekopdracht zo herschrijven..
SELECT
SUBSTRING(pk, 6, 2)::INT AS _year
FROM
listing
WHERE
SUBSTRING(pk, 6, 2)::INT > 90