我有一张这样的表:
Id,Code, (some more columns)
1, c
1, a
1, b
1, b
1, b
2, a -- the desired row
3, b
3, c
3, a
3, a
我希望得到一个Id(或全部)只与'a'相关联而不是'b'和'c'。我该怎么做?
我刚才尝试过:
select *
from
(
select Id, count(case when Code='a' then 0 else 1 end) c
from tbl
group by Id
)
where c = 0
为什么这不起作用?
答案 0 :(得分:1)
这将为您提供仅与'a'
代码相关联的Id值列表。
select Id
from tbl
group by Id
having max(case when Code='a' then 0 else 1 end) = 0
有关现场演示,请参阅此fiddle。