Il s'agit d'un exemple de requête "ensembles dans des ensembles". Je recommande l'agrégation avec le having
clause, car c'est l'approche la plus flexible.
select score
from t
group by score
having sum(id = 2) > 0 and -- has id = 2
sum(id = 4) > 0 -- has id = 4
Ce que cela fait, c'est agréger par score. Puis la première partie du having
clause (sum(id = 2)
) compte combien de "2" il y a par score. La seconde consiste à compter le nombre de "4". Seuls les scores qui ont un "2" et un "4" sont renvoyés.