代码之家  ›  专栏  ›  技术社区  ›  Nalluri

在group by之后检查是否有任何列包含提供的值

  •  0
  • Nalluri  · 技术社区  · 6 年前

    我有一个这样的数据集。

    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 回复  |  直到 6 年前
        1
  •  3
  •   sticky bit    6 年前

    您可以聚合和检查,如果实体项ID的不同计数在 HAVING 条款。

    SELECT id
           FROM elbat
           WHERE enitityitemid IN (1, 2)
           GROUP BY id
           HAVING count(DISTINCT enitityitemid) = 2;
    
        2
  •  1
  •   DhruvJoshi    6 年前

    您可以尝试下面这样的查询

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