首页 > 解决方案 > 使用 COUNT 编写 SQL 查询时遇到问题

问题描述

在此处输入图像描述

我正在尝试编写一个 SQL 查询,在其中打印表 1 中的姓名、性别以及参与者的数量。表1和表2的id标签是一样的,所以我的想法是通过id标签对参与者进行分组,然后统计。

$sql = 'SELECT T1.name, T1.gender, COUNT(T2.Participant_name) AS participant_count
                FROM Table1 T1, Table2 T2 
                WHERE T1.Id = T2.Id
                GROUP T2.Id';

这个逻辑对我来说是有道理的,但是,似乎什么都没有打印出来,我不确定我哪里出错了。

期望的输出:

标签: sqlcount

解决方案


试试下面的 group by 两列 T1.name, T1.gender

SELECT T1.name, T1.gender, COUNT(T2.Participant_name) AS participant_count
                FROM Table1 T1 inner join Table2 T2 
                on T1.Id = T2.Id
                GROUP T1.name, T1.gender

或者你可以试试这个

select T1.name, T1.gender, T1.age,participant_count from
Table1 T1 inner join
( SELECT ID,COUNT(Participant_name) AS participant_count
                    FROM Table2  
                    GROUP ID
)T2 on T1.Id = T2.Id

推荐阅读