我试图从表中获取column1中的值,这些值在column2中有一些值.
例如,我想获得A,因为它有"1,2,3".(预期产出的选择:A)
---
A|1
A|2
A|3
A|4
B|1
B|3
---
Run Code Online (Sandbox Code Playgroud)
这就是我尝试过的
SELECT * FROM sample_table WHERE Col2 in (1,2,3) GROUP BY col1
Run Code Online (Sandbox Code Playgroud)
我完全理解它不会起作用,因为我只是把第2列必须具有其中一个值的条件,然后我将它们按Col1分组,所以它需要(A,1),(A,2), (A,3),(B,1),(B,2) - >按Col1分组给我(A)和(B)
我真的不知道如何强制它拥有所有 3个值
这是尝试它的小提琴
注意
请随时编辑帖子,以使其更容易理解,我已尽力了,但我知道它不是很好解释,特别是标题
非常感谢你
您可以使用以下HAVING()条款:
SELECT col1
WHERE Col2 in (1,2,3)
GROUP BY col1
HAVING COUNT(col2) = 3
Run Code Online (Sandbox Code Playgroud)
这将仅显示具有3个值的结果,并且因为您仅过滤了1,2,3,如果有3个,那么它们就是3个.
注意:如果col2上的值不明显,则EG可以显示此数据:
A | 1
A | 1
A | 2
Run Code Online (Sandbox Code Playgroud)
然后DISTINCT在计数的括号内添加.