Toto je příklad dotazu „sets-in-sets“. Doporučuji agregaci pomocí having
klauzule, protože je to nejflexibilnější přístup.
select score
from t
group by score
having sum(id = 2) > 0 and -- has id = 2
sum(id = 4) > 0 -- has id = 4
To, co dělá, je agregace podle skóre. Pak první část having
klauzule (sum(id = 2)
) počítá, kolik "2" je na skóre. Druhým je sčítání, kolik "4"s. Vrátí se pouze skóre, která mají "2" a "4".