SQL 中同龄人的总和?

The Sum of people that have same age in SQL?

我正在参加 SQL class,我需要帮助解决一个问题。

我在 phpmyadmin 服务器上有以下 table

patient (id, age) 

共有 100 位患者

我被告知要使用 SQL 求同龄人的总和。

我写了这个查询:

SELECT COUNT(age) 
FROM patient 
HAVING (COUNT(age) > 1);

但结果是 returns 100,当我执行此查询并找到每个年龄段具有相同年龄的患者人数并手动计算计数时,我找到了 78 并且我手动检查了它并且确实是78.

SELECT COUNT(*) 
FROM patient 
GROUP BY age 
HAVING (COUNT(*) > 1);

我的代码有什么问题?

从获取每个年龄段的人数的子查询开始。然后将其过滤为大于 1 的计数,这样就只有同龄人了。

然后在主查询中使用 SUM() 将所有这些计数相加,得到患者总数。

SELECT SUM(count)
FROM (
    SELECT COUNT(*) AS count
    FROM patient
    GROUP BY age
    HAVING count > 1
) AS x
    select age, count(*) from patient group by age;