只有在给定列的某个计数时才返回行

时间:2011-07-07 20:32:20

标签: mysql sql

我正在尝试创建SELECT查询,该查询仅在列(称为My_Column)只有一个不同的值(即COUNT(DISTINCT My_Column) = 1时)时才返回行。如果有My_Column的多个不同值,我不希望返回任何行。我怎么能这样做?

4 个答案:

答案 0 :(得分:3)

使用:

SELECT t.*
  FROM YOUR_TABLE t
HAVING COUNT(DISTINCT t.my_column) = 1

了解MySQL handles GROUP BY and HAVING with Hidden Columns的方式。

答案 1 :(得分:1)

SELECT a.* 
FROM table a
WHERE 1 = (SELECT COUNT(DISTINCT My_Column) FROM table);

答案 2 :(得分:1)

SELECT ...
GROUP BY foo
HAVING COUNT(DISTINCT My_Column) = 1;

答案 3 :(得分:0)

试试这个:

SELECT COUNT(My_Column), My_Column FROM tbl GROUP BY My_Column HAVING COUNT(My_Column)=1