Запрос типа: SELECT x, weight AS (SELECT COUNT(...)) FROM table_name WHERE weight>0;
Возвращает: ERROR: column «weight» does not exist LINE 1: ...FROM table_name WHERE weight>0
при этом SELECT x, weight AS (SELECT COUNT(...)) FROM table_name ORDER BY weight;
работает нормально. Т.е. условие WHERE хочет именно колонку таблицы в качестве левого параметра условия, а не промежуточное вычисленное значение, хотя для сортировки оно его берет без проблем. Можно как-нибудь это обойти прямо в запросе без пост-фильтрации резалт-сета? База postgres.