获取单个组的学生人数的正确sql是什么?
会议如下所示: 会议记录 地方 1. A. 2. B 3. C获取单个组的学生人数的正确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(*)
您不需要子查询。只需在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。这应该作为一个新问题提出。你的(原始)问题已经得到了回答。