列出至少有两名成员的学生团体
select a.studentid, a.groupid
from membersof a
join (
select studentid, groupid
from membersof
group by groupid
where count(studentid) >= 2) b on a.studentid = b.studentid
where a.studentid = b.studentid
我认为我没有正确得到这个,但基本上,我需要找到至少有两个成员共同的groupID。通过上面的查询,我不断收到“缺少右括号错误,但我关闭了连接和计数,任何帮助/指导都表示赞赏。
答案 0 :(得分:2)
比较聚合列时需要使用HAVING。
select studentid, groupid
from membersof
group by groupid
HAVING count(studentid) >= 2
答案 1 :(得分:0)
你想要成对的小组,由学生加入,然后聚合计数:
select m1.groupid, m2.groupid
from membersof m1 join
membersof m2
on m1.studentid = m2.studentid and m1.groupid < m2.groupid
group by m1.groupid, m2.groupid
having count(*) >= 2;