这是我的表
column1 column2 (varchar)
--------------------------
foobar 0
foobar 1
whatever 0
whatever 0
whatever 0
我想要的是从column1获取所有那些在第2列中只有零的值。在这种情况下我只想要“无论什么”,因为“foobar”的值为0和1.我尝试了一个连接,但是失败了。我怎么能解决这个问题?
谢谢!
答案 0 :(得分:2)
试试这个:
SELECT column1
FROM table1 t1
WHERE (SELECT SUM(column2)
FROM table1 t2
WHERE t2.column1=t1.column1
GROUP BY column1) = 0
--GROUP BY column1
如果您只希望一行取消注释最后一行
答案 1 :(得分:1)
这是最简单的方法:
select column1
from table t
group by column1
having sum(column2 <> '0') = 0;
也就是说,计算column2中不是0
的值的数量。并确保没有这样的行。
答案 2 :(得分:-1)
我更喜欢使用join over subquery,它通常会提供更好的结果
SELECT column1
FROM table1 t1
INNER JOIN table1 t2
ON t2.column1=t1.column1
-- GROUP BY column1