1

我有一张这样的桌子:

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

或者

select column_a, column_b, COUNT(1) AS total from table group by column_b having total = 1

(感谢安德鲁韦伯)

4

3 回答 3

4

使用 count 函数将提供一个选择,其中 column_b 中的值仅出现一次。试试这个:

select * from table group by (column_b) having count(column_b) = 1;
于 2012-06-13T17:43:30.043 回答
3
SELECT column_a, column_b, COUNT(1) AS total
FROM table
GROUP BY column_b
HAVING total = 1

我相信这应该有效。这会将所有 column_b 组合在一起并计算有多少具有该特定值,然后将结果集限制为具有唯一 column_b 值的结果集。

于 2012-06-13T17:47:08.180 回答
-1

试试select unique(column_b), column_a, from table?:)

编辑修复错字

于 2012-06-13T17:43:50.410 回答