首页 > 解决方案 > 选择其中 1 个属性完全不同的所有行两次。(MySQL)

问题描述

假设我们有一张桌子“颜色”

id    colour
1     'Blue'
2     'Red'
2     'Red'
3     'Blue'
3     'Red'
4     'Blue'
4     'Red'
4     'Blue'
4     'Yellow'
5     'Blue'
5     'Yellow'

查询应该返回 id 3 和 5,因为它们正好有两种不同的颜色。颜色不能相同,不同颜色的数量需要正好是 2。

我试过这个:

SELECT id FROM colours WHERE COUNT(DISTINCT colour) = 2;

但可悲的是它给出了一个错误。

标签: mysqlsqldatabaseworkbench

解决方案


你很接近:

SELECT id
FROM colours
GROUP BY id
HAVING COUNT(DISTINCT colour) = 2;

推荐阅读