SQL选择只包含特定值的行

MHT*_*Tri 10 sql t-sql select filter

我有一张桌子

Col 1 Col 2 Col 3
1       A     1
2       A     2
3       B     1
4       C     1
5       C     2
6       D     1
Run Code Online (Sandbox Code Playgroud)

如何只获得Col 3 = 1的唯一行?

我想获得第3行和第6行(第2列分别为B和D).我不想要A和C,因为他们也有Col 3 = 2.

我尝试过以下方面:

select col 2 from table group by col 2 having count(col 3) = 1

但这只会导致Col 2的结果,所以我不确定Col 3的内容是否为1.

编辑:对不起家伙也许我没有说清楚我的问题.我想获得Col 2的所有行,其中只包含Col 3 = 1 AND ONLY 1.

因此,如果我尝试WHERE Col 3= 1,它将返回4行,因为A有1.但由于A也有一行Col 3 = 2,我不希望这样,对于C来说相同.从这个示例表中,我希望得到最终结果只显示2行,B和D.

我的示例表是一个示例,我实际上有大约5000行要过滤,否则我会像你们建议的那样:)

Mar*_*ith 9

SELECT col2
FROM your_table
GROUP BY col2
HAVING MAX(col3) = 1 AND MIN(Col3) = 1
Run Code Online (Sandbox Code Playgroud)

要么

SELECT a.col2 
FROM your_table a
WHERE a.col3=1 AND NOT EXISTS(SELECT *
                              FROM your_table b 
                              WHERE a.col2=b.col2 AND b.col3<>1)
Run Code Online (Sandbox Code Playgroud)