Consider following table:
id var_a var_b ---------------------- 0 abcd 123 1 abcd 245 2 efgh 123 3 abcd 456 4 efgh 211 5 ijkl 123 6 ijkl 456
I want to group by var_a in such a way, that each group would have in it var_b = ‘123’ and var_b = ‘456’. That is, I want to obtain “abcd” and “ijkl” in the set of results. How do I do that?
Advertisement
Answer
You can filter the table and group by var_a
:
select var_a from tablename where var_b in ('123', '456') group by var_a having count(distinct var_b) = 2
The condition in the having
clause makes sure that both '123'
and '456'
exist for the same var_a
.