Dit is een voorbeeld van een "sets-in-sets"-query. Ik raad aggregatie aan met de having
clausule, omdat dit de meest flexibele benadering is.
select score
from t
group by score
having sum(id = 2) > 0 and -- has id = 2
sum(id = 4) > 0 -- has id = 4
Wat dit doet, is aggregeren op score. Dan het eerste deel van de having
clausule (sum(id = 2)
) telt op hoeveel "2"en er per score zijn. De tweede is het optellen van het aantal "4"s. Alleen scores met een "2" en "4" worden geretourneerd.