我正在尝试编写一个简单的查询来获取如下所示的数据集:
ID | Col2
X B
X C
Y B
Y D
并返回:
ID | Col2 | Col3
X B C
Y B D
本质上,我有一个 ID 列,它可以在 Col2 中包含 B、C 或 D。我试图确定哪些 ID 只有 B 和 D。我有一个查询可以找到两者,但不仅仅是那个组合。询问:
select ID, Col2
from Table1
where ID in (
select ID from Table1
group by ID
having count(distinct Col2) = 2)
order by ID
或者,我可以使用帮助来找到一种方法来过滤 B 和 D 上的查询并忽略 B 和 C。我可能已经看到了自联接,但不知道如何实现它。
谢谢!
编辑:对于给定的 ID,大多数数据集具有 B、C 和 D 的所有三个。这里的目标是隔离缺少一个的 ID,即缺少 C。