Как проверить несколько условий в having при использовании array_agg?

у таблицы sets есть ещё колонка group, который может быть 1 или 2.
Каким образом переписать запрос, чтобы учитывать не только то, что найденные строки содержат массив ARRAY[1,2,3], а ещё и все принадлежат только к одной из групп(1 или 2)

SELECT country_id FROM countries 
WHERE EXISTS 
  (SELECT 1 FROM sets 
  WHERE (sets.country_id = countries.country_id AND sets.is_used = true) 
  HAVING(array_agg(sets.city_id) @> ARRAY[1, 2, 3]))
  • Вопрос задан
  • 898 просмотров
Пригласить эксперта
Ответы на вопрос 1
@ponaehal
Насколько я помню молодость HAVING фильтрует по значениям агрегаторов (SUM, MAX и т.д.), а в вашем случае нужно просто добавить фильтр в условие WHERE .... AND group in (1,2)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы