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行要过滤,否则我会像你们建议的那样:)
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)