mysql - 选择其中 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;
但可悲的是它给出了一个错误。
解决方案
你很接近:
SELECT id
FROM colours
GROUP BY id
HAVING COUNT(DISTINCT colour) = 2;
推荐阅读
- machine-learning - 没有隐藏状态的注意力网络?
- javascript - Visual Studio 中是否有任何等效于 javascript 的 Roslyn Analyzer?
- html-email - 如何停止 Windows 10 Mail 应用程序从数字创建链接/联系人?
- reactjs - 由于 linter 错误,React Native Start 无法编译
- c# - 如何让一个WPF应用真正全屏?
- java - Spring WebFlux - 如何从数据库中获取数据以在下一步中使用
- python-3.x - 码头工人。无法建立新连接:[Errno 111] Connection refused'
- java - VIES 增值税验证 wsdl 无法通过 java 代码工作
- python - 谷歌云 python API 为 blob.owner 属性返回 None
- python - 使用 Python 进行漂亮的打印输出