SQL选择每个ID具有常量列值的行

时间:2017-11-09 22:47:25

标签: sql

给定一个看起来像这样的数据集。

ID_no |    Color
---------------- 
1     |    Blue 
1     |    Blue 
2     |    Green
2     |    Blue
3     |    Red  
4     |    Red
4     |    Blue

如何仅返回具有一种唯一颜色的ID?即

ID_no |    Color
---------------- 
1     |    Blue 
1     |    Blue 
3     |    Red  

我试过

select ID_no, color from table 
having count(unique(color)) = 1 
GROUP BY ID_no 

但这似乎不起作用,有人可以用SQL语法来帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:2)

使用group byhaving

select id_no
from t
group by id_no
having min(color) = max(color);

答案 1 :(得分:1)

希望这有帮助。

SELECT ID, color FROM <tablename> GROUP BY ID HAVING MIN(color) = 
MAX(color);