我有一个类似于表(id,C1,C2,R,..)
的表,在此表中,C1-C2
对与一个或多个R
相关,例如(id1,a,b,r1,...)
,{{1} }
我想找出仅与某个(id2,a,b,r2,...)
相关的所有C1-C2
对(例如R
,然后r1
对不会被包含在内,因为它' s也与a-b
有关,我该如何编写查询?
答案 0 :(得分:0)
您可以按C1和C2进行分组,并计算等于您想要的值的" r"并确保它不是0,以及&#的数量34; r" s(并确保它为0):
SELECT c1, c2
FROM mytbale
GROUP BY c1, c2
HAVING COUNT(CASE r WHEN 'r1' THEN e END) > 0 AND
COUNT(CASE r WHEN 'r1' THEN NULL ELSE 1 END) = 0
答案 1 :(得分:0)
如果我理解正确,您可以使用group by
和having
。我想要所有只与一个r
相关的对:
select c1, c2, max(r) as r
from t
group by c1, c2
having min(r) = max(r);
如果您有一个特定的r
:
select c1, c2
from t
group by c1, c2
having min(r) = max(r) and min(r) = 'r1'