我有一张这样的表:
column_a column_b
foo 1
bar 1
bar 2
baz 4
我希望得到以下结果,包含所有行,column_b
中具有唯一字段值:
bar 2
baz 4
foo
(0)和bar
(1)都有column_b
值'1',因此'1'不是唯一的。
是否有MySQL-Expression过滤所有具有唯一column_b
?
也许是这样的:
select * from table where isunique(column_b)
另外:我不需要像DISTINCT
那样的东西!
编辑(已解决):
感谢YaK和jcho360,这个是解决方案:
select column_a, column_b from table group by column_b having count(column_b) = 1
OR
select column_a, column_b, COUNT(1) AS total from table group by column_b having total = 1
(thx to andrewtweber)
答案 0 :(得分:4)
使用count函数将提供一个选择,其中column_b中的值仅出现一次。试试这个:
select * from table group by (column_b) having count(column_b) = 1;
答案 1 :(得分:3)
SELECT column_a, column_b, COUNT(1) AS total
FROM table
GROUP BY column_b
HAVING total = 1
我认为应该有效。这会将所有column_b组合在一起并计算有多少具有该特定值,然后将结果集限制为具有唯一column_b值的那些。
答案 2 :(得分:-1)
请尝试select unique(column_b), column_a, from table
? :)
编辑修复错误