select 行与其他行有依赖关系
select rows that having dependencies to other rows
我有一个 table 的数据为:
C1 || C2
-----------------
1 || a
1 || b
1 || c
2 || a
2 || b
2 || c
3 || a
3 || b
4 || c
4 || d
5 || c
6 || a
我必须 select 所有具有 C2 b
或 c
且没有值的 C1 个人号码。建议 ?
只喜欢 -> C1 = 4 和 5
您可以使用 having
子句来计算其他值。如果计数为 0,则您需要 c1
值:
select c1
from table t
group by c1
having sum(case when c2 in ('b', 'c') then 1 else 0 end) = 0
此答案使用与 Gordon Lindoff 的答案类似的技术。
您可以像这样将 GROUP BY
与 having
一起使用。
select c1
from table t
group by c1
having sum(case when c2 in ('b', 'c') then 1 else 0 end) > 0
and sum(case when c2 = 'a' then 1 else 0 end) = 0
我有一个 table 的数据为:
C1 || C2
-----------------
1 || a
1 || b
1 || c
2 || a
2 || b
2 || c
3 || a
3 || b
4 || c
4 || d
5 || c
6 || a
我必须 select 所有具有 C2 b
或 c
且没有值的 C1 个人号码。建议 ?
只喜欢 -> C1 = 4 和 5
您可以使用 having
子句来计算其他值。如果计数为 0,则您需要 c1
值:
select c1
from table t
group by c1
having sum(case when c2 in ('b', 'c') then 1 else 0 end) = 0
此答案使用与 Gordon Lindoff 的答案类似的技术。
您可以像这样将 GROUP BY
与 having
一起使用。
select c1
from table t
group by c1
having sum(case when c2 in ('b', 'c') then 1 else 0 end) > 0
and sum(case when c2 = 'a' then 1 else 0 end) = 0