Sql server 无法理解这个查询

Sql server 无法理解这个查询,sql-server,Sql Server,我有一张如下安排的桌子: ID Group 1 I 1 O 1 M 2 I 2 N 2 O 3 M 4 I 5 O 5 M 我需要找到所有ID都是组M和组I或O。 在这种情况下,第1组和第5组 谢谢 您可以在HAVING子句中使用带条件聚合的分组: SELECT Id FROM mytable WHERE [Group] IN ('I', 'O', 'M') GROUP BY Id HAVING COUNT(CASE WHEN [Group] =

我有一张如下安排的桌子:

ID  Group
1   I
1   O
1   M
2   I
2   N
2   O
3   M
4   I
5   O
5   M
我需要找到所有ID都是组M和组I或O。 在这种情况下,第1组和第5组

谢谢

您可以在
HAVING
子句中使用带条件聚合的分组:

SELECT Id 
FROM mytable
WHERE [Group] IN ('I', 'O', 'M') 
GROUP BY Id
HAVING COUNT(CASE WHEN [Group] = 'M' THEN 1 END) > 0 AND 
       COUNT(CASE WHEN [Group] IN ('O', 'I') THEN 1 END) > 0

谢谢!我将用我的真实例子来尝试这一点,看看我是否能让它工作。