首页 > 解决方案 > 使用 count 和 avg 的 SQL 语句

问题描述

我的问题->一个女人平均可以生育多少个孩子。给出列中孩子的数量。

Relations:

human (name, gender, age) 
parent (ParentName, ChildName) -> is subset of human(name)

到目前为止我得到了什么:

SELECT AMOUNT
FROM human h
JOIN parent p ON h.name = p.parentname
WHERE gender = 'f' AND h.name IN (p.parentname) AND AVG(COUNT(childname))

期望的结果:

AMOUNT : 1.33333333333333333333333333333333333333E00

标签: sqldatabase

解决方案


这是你想要的吗?

SELECT COUNT(*) / count(distinct h.name)
FROM human h JOIN
     parent p
     ON h.name = p.parentname
WHERE h.gender = 'f';

这计算了有孩子的女性的平均值。对于所有女性:

SELECT COUNT(*) * 1.0 / count(distinct h.name)
FROM human h LEFT JOIN
     parent p
     ON h.name = p.parentname
WHERE h.gender = 'f';

推荐阅读