Este es un ejemplo de una consulta de "conjuntos dentro de conjuntos". Recomiendo la agregación con el having
cláusula, porque es el enfoque más flexible.
select score
from t
group by score
having sum(id = 2) > 0 and -- has id = 2
sum(id = 4) > 0 -- has id = 4
Lo que esto está haciendo es agregar por puntuación. Luego la primera parte del having
cláusula (sum(id = 2)
) está contando cuántos "2" hay por puntuación. El segundo es contar cuántos "4". Solo se devuelven las puntuaciones que tienen un "2" y un "4".