分组后检查是否有任何列包含提供的值

时间:2018-09-17 22:33:45

标签: sql sql-server

我有一个这样的数据集。

Id  EnitityitemId 
1   1
1   2
1   3
2   1
2   2
3   1
3   4

在按ID列分组后,我要过滤此表,其中任何组都包含1和2个值(在EntityItemId列中)。

假设我正在检查1和2值是否存在于一个组中。我期望结果为

Id
1
2

如果需要澄清,请告诉我。 谢谢

2 个答案:

答案 0 :(得分:3)

您可以汇总并检查HAVING子句中的实体项目ID的不重复计数是否等于2。

SELECT id
       FROM elbat
       WHERE enitityitemid IN (1, 2)
       GROUP BY id
       HAVING count(DISTINCT enitityitemid) = 2;

答案 1 :(得分:1)

您可以尝试如下查询

select Id
from
yourtable where
EnitityitemId  in (1,2)-- this is your condition
group by Id
having
count(1)=2