Questo è un esempio di query "set-in-set". Consiglio l'aggregazione con having
clausola, perché è l'approccio più flessibile.
select score
from t
group by score
having sum(id = 2) > 0 and -- has id = 2
sum(id = 4) > 0 -- has id = 4
Ciò che sta facendo è aggregare per punteggio. Quindi la prima parte del having
clausola (sum(id = 2)
) conta quanti "2" ci sono per punteggio. Il secondo è contare quanti "4" s. Vengono restituiti solo i punteggi che hanno un "2" e un "4".