у таблицы 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]))