@sha-man

Как отфильтровать данные по подсчитанному кол-ву?

Простой запрос, который без проблем выполняется в MySql в Postgres выдает ошибку. Запрос:

SELECT "t".*, 
(SELECT COUNT(*) FROM "user_archive_view" WHERE user_tariff_id = t.id) AS "count_archive"
	FROM "user_tariff" "t"  HAVING "count_archive"='100';


Ошибка:
ERROR: column "count_archive" does not exist
LINE 3: FROM "user_tariff" "t" HAVING "count_archive"='100';

Как заставить работать?
  • Вопрос задан
  • 71 просмотр
Пригласить эксперта
Ответы на вопрос 1
HAVING выполняется перед SELECT поэтому он ничего не знает про count_archive, вот рабочий вариант
SELECT "t".*, 
(SELECT COUNT(*) FROM "user_archive_view" WHERE user_tariff_id = t.id) AS "count_archive"
  FROM "user_tariff" "t"  
HAVING (SELECT COUNT(*) FROM "user_archive_view" WHERE user_tariff_id = t.id)  = '100';
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы