Dies ist ein Beispiel für eine "Sets-in-Sets"-Abfrage. Ich empfehle die Aggregation mit dem having
-Klausel, da dies der flexibelste Ansatz ist.
select score
from t
group by score
having sum(id = 2) > 0 and -- has id = 2
sum(id = 4) > 0 -- has id = 4
Was dies tut, ist das Aggregieren nach Punktzahl. Dann der erste Teil des having
-Klausel (sum(id = 2)
) zählt hoch, wie viele "2" es pro Punktzahl gibt. Die zweite zählt aufwärts, wie viele "4"s. Es werden nur Ergebnisse zurückgegeben, die eine "2" und "4" haben.