我尝试搜索其他文章,但只能找到关于查找一个固定值的重复项的内容。
现在想象一下以下表格:
╔══════════╦═══════╗
║ customer ║ color ║
╠══════════╬═══════╣
║ 1 ║ black ║
║ 1 ║ black ║
║ 2 ║ red ║
║ 2 ║ black ║
║ 3 ║ red ║
║ 3 ║ red ║
║ 3 ║ red ║
║ 4 ║ black ║
║ 5 ║ black ║
║ 5 ║ green ║
║ 6 ║ purple║
╚══════════╩═══════╝
我想选择“重复项”,即以下客户:
- 有多个黑色
- 一个黑色和其他红色也是重复的
- 无重复项:客户可以拥有任意数量的红色
目前的情况
目前我只能选择关于黑色重复项的内容,但我无法将其与“一个黑色,没有更多红色”的条件结合起来。
SELECT customer FROM events WHERE
color = 'black'
group by customer
having count(*) > 1
也许我可以先数一下黑色,然后再加入现有表格,计算额外的黑色和红色数量?
期望输出
我希望得到以下客户结果: 1,2。 更好的输出方式是,我知道客户是双倍黑还是黑+一些红色:
╔══════════╦═══════════╦══════════════╗
║ customer ║ blackOnly ║ blackPlusRed ║
╠══════════╬═══════════╬══════════════╣
║ 1 ║ yes ║ no ║
║ 2 ║ no ║ yes ║
╚══════════╩═══════════╩══════════════╝
很抱歉,我修改了我的帖子
- 我在示例表中添加了客户5和6以及更多颜色。因此,可能有些建议不再适用 :-(。 (只是想快速编辑,如果我没有遵循某些修改规则,请告诉我)
- 非常感谢迄今为止已经给出的非常快速的答案。