获取单个组的学生人数的正确sql是什么?

获取单个组的学生人数的正确sql是什么?,sql,postgresql,foreign-keys,multiple-tables,Sql,Postgresql,Foreign Keys,Multiple Tables,会议如下所示: 会议记录 地方 1. A. 2. B 3. C 您不需要子查询。只需在group_members.student_id上使用一个不同的计数,并添加一个group by语句,该语句包含主select查询中的所有其他列您在右后方有一个子查询,但您需要一个相关子查询。这看起来像: SELECT sg.study_group_id, sg.topic, sg.description, sg.group_member_limit, (SELECT COUNT(*)

会议如下所示:

会议记录 地方 1. A. 2. B 3. C
您不需要子查询。只需在group_members.student_id上使用一个不同的计数,并添加一个group by语句,该语句包含主select查询中的所有其他列

您在右后方有一个子查询,但您需要一个相关子查询。这看起来像:

SELECT sg.study_group_id, sg.topic, sg.description, sg.group_member_limit,
       (SELECT COUNT(*)
        FROM group_members gm
        WHERE sg.study_group_id = gm.study_group_id 
       ) AS num_students
FROM study_groups sg
WHERE sg.meeting_id = 1;
查询的重要部分是从子查询中删除
study\u groups
,以便子查询引用外部查询


我还引入了列别名,因此查询更易于编写和读取。

为什么不按组ID分组并计算成员数呢如果我这样做,那么它会说
子查询返回的多行作为表达式使用
我的sql非常慢,请您给出sql作为答案好吗?谢谢Gordon Linoff,你改变了我的思维方式。你能给我一个关于附加部分的想法吗?@SumonSUtrodhar。这应该作为一个新问题提出。你的(原始)问题已经得到了回答。