答案 0 :(得分:4)
尝试分组依据:
select id, sum(status)
from tablename
group by id
having sum(status)=0
答案 1 :(得分:0)
如果您只有not exists
和0
状态,我会使用1
:
select t.*
from table t
where t.status = 0 and
not exists (select 1 from table t1 where t1.rg_id = t.rg_id and t1.status = 1);
其他选择是使用group by
子句:
select rg_id
from table t
group by rg_id
having min(status) = max(status) and min(status) = 0;
答案 2 :(得分:0)
不与条件聚合一起使用
select * from t where
rg_id not in( select rg_id
from t
where status in (0,1)
group by rg_id
having count(distinct status)=2
)
答案 3 :(得分:0)
通过使用status
和0
,可以确保每个组中的所有having
值都没有sum
之外的其他值:
select `rg_id`
from `tbl`
group by `rg_id`
having sum(`status` <> 0) = 0
答案 4 :(得分:0)
如果您只想要0(非id分别为0和1),请使用减号
从状态为0的表1中选择ID 减去 从状态为1的表1中选择ID