Задать вопрос
@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';

Как заставить работать?
  • Вопрос задан
  • 82 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Инженер по тестированию
    5 месяцев
    Далее
  • Яндекс Практикум
    Java-разработчик
    10 месяцев
    Далее
  • Яндекс Практикум
    Python-разработчик расширенный
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 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';
Ответ написан
Ваш ответ на вопрос

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

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