SQL select 只有特定值的行

SQL select the only rows with only a certain values in them

我这里也有同样的问题:SQL select rows with only a certain value in them

但我找到的解决方案仅适用于给定的一个值,我的意思是我希望它适用于多个值 {2 或 +},例如:

Col 1 Col 2 Col 3
1       A     1
2       A     2
3       B     1
4       C     1
5       C     2
6       D     1 
7       C     3 

我想获取仅包含 cols3 = 1 和 cols3 =2 的所有行(仅值 1 和 2)并且输出将是:"A" 对于给定的 table,我不想有 C 因为它有另一个值 cols 3 != 1 或 2, link 中的解决方案只允许为一个值执行此操作,但我想将其扩展到 2 个值或以上,有人可以帮助我吗:D

SELECT 第 2 栏 来自 TABLE 其中(第 3 栏 = 1 或第 3 栏 =2) AND col 2 不在 (SELECT 第 2 列 来自 TABLE 哪里(第 3 列 <> 2 AND 第 3 列 <> 1));

您可以为此使用 conditional aggregation

select col2
from yourtable
group by col2 
having sum(col3=1) > 0 
  and sum(col3=2) > 0
  and sum(col3 not in (1,2)) = 0