无法找出查询

时间:2016-02-12 13:02:44

标签: 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都是Group M和I或O组。 在这种情况下,第1组和第5组。

谢谢!

1 个答案:

答案 0 :(得分:3)

您可以在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

Demo here