sql - 使用 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
解决方案
这是你想要的吗?
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';
推荐阅读
- java - 使用 SPRING BOOT 时如何在 RequestParams 中保留 ISO 8601 日期格式
- c++ - C++:函数在输出前自动使用50减去/增加输入数
- sql-server - 如何有效地从具有引用主键列的列的大表(12k 记录)中获取有序层次结构列表
- actionscript-3 - 错误:参数数量不正确。预计不超过 5. 在 nexusShop\NexusShopPopupView.as(47): col: 115
- c# - 为什么 IL.Emit 方法要添加额外的 nop 指令?
- clojure - 带有比较的 if 语句
- regex - 在 Sublime Text 中使用正则表达式会导致堆栈空间不足错误
- kubernetes - 在 OpenStack 上部署 Kubernetes
- javascript - ReactJS 扩展运算符
- r - 如何在R中将整数转换为日期格式?