Оконные функции PostgreSQL пока не умеет оптимизировать подобным образом (и даже планов реализации такого нет, если я правильно помню), вот в чём дело.
А это Вам виднее. Я лично общего метода (без hacks с какими-то session variables или их аналогами) не знаю, обычно просто сижу и [много] думаю, и стараюсь таких триггеров не писать. ;)