SQL - 查找重复的子项

时间:2016-04-01 14:47:46

标签: sql sql-server duplicates

我有一张包含会议的表格:

MeetID      Description
-----------------------------------------------------
1           SQL Workshop
2           Cake Workshop

我有另一张表格,其中包含会议中的所有参与者:

PartID      MeetID      Name          Role
-----------------------------------------------------
1           1           Jan           Coordinator
2           1           Peter         Participant
3           1           Eva           Participant
4           1           Michael       Coordinator
5           2           Jan           Coordinator
6           2           Peter         Participant

我想找到一个包含2个或更多参与者的所有会议的列表,其中Role ='Coordinator'。 例如。在上面的例子中,MeetID = 1而不是2。

我不能为我的生活弄清楚如何做到这一点,尽管我觉得应该很简单:-) (我正在使用SQL Server 2012)

1 个答案:

答案 0 :(得分:5)

使用group byhaving

很容易做到这一点
select MeetId
from participants p
where Role = 'Coordinator'
group by MeetId
having count(*) >= 2;

注意:Rolepotential keyword/reserved word,因此对于列名称来说这是一个糟糕的选择。