如果COUNT(DISTINCT COLNAME)> 1选择所有行

时间:2019-09-27 19:49:44

标签: mysql

我希望选择表中的所有行,即使特定列中的一个值也不同于该列中的任何值。 因此,要检查所有行是否不同,我首先执行count(distinct col_name)>1

| NAME | YEAR_BORN | SCHOOL |  
| Jack | 2000      | A      |  
|Jill  |2001       |A       |
|Jane  |2000       |A       |

由于吉尔的出生年份与杰克和简不同, 我想按原样显示该列。如果吉尔(Jill)和他们同年出生,我就不希望退回任何东西。

如果满足此条件,我现在应如何选择所有行?

2 个答案:

答案 0 :(得分:1)

在where子句中需要一个子查询:

select * from tablename
where (select count(distinct year_born) from tablename) > 1

请参见dlopen
结果:

| NAME | YEAR_BORN | SCHOOL |
| ---- | --------- | ------ |
| Jack | 2000      | A      |
| Jill | 2001      | A      |
| Jane | 2000      | A      |

答案 1 :(得分:0)

您可以尝试SELECT * FROM table_name WHERE count(distinct col_name)>1