Consider following table:
x
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
.