【发布时间】:2022-09-28 22:51:05
【问题描述】:
我正在刷新关于 SQL 的知识并遇到了这个问题:
在这个 MySQL 挑战中,您的查询应该返回被报告的人的姓名(不包括空值)、向他们报告的成员数量以及这些成员的平均年龄(以整数形式)。行应按名称按字母顺序排列
这是主表:
ID FirstName LastName ReportsTo Position Age
-----------------------------------------------------------
1 Daniel Smith Bob Boss Engineer 25
2 Mike White Bob Boss Contractor 22
3 Jenny Richards null CEO 45
4 Robert Black Daniel Smith Sales 22
5 Noah Fritz Jenny Richards Assistant 30
6 David S Jenny Richards Director 32
7 Ashley Wells David S Assistant 25
8 Ashley Johnson null Intern 25
查询应返回此结果集:
我的查询是这样的:
SELECT
mt.ReportsTo,
COUNT(mt.ReportsTo) AS Members,
AVG(mt.Age) AS Average_Age
FROM
maintable_1YJ8B mt
WHERE
ReportsTo IS NOT NULL
GROUP BY
mt.ReportsTo, mt.Age
ORDER BY
mt.ReportsTo
我的查询返回这个输出:
ReportsTo Members Average_Age
---------------------------------------
Bob Boss 1 22.0000
Bob Boss 1 25.0000
Daniel Smith 1 22.0000
David S 1 25.0000
Jenny Richards 1 30.0000
Jenny Richards 1 32.0000
问题:我缺少什么让它返回正确的结果集?以及如何使年龄列整数不是十进制值?
请帮忙!谢谢!
-
如果您想要一列的 AVERAGE,那么不要也 GROUP BY 该列。
-
谢谢!现在它可以工作了,但我需要平均值不是十进制的。结果表显示十进制数字,我该怎么做?
-
地板、天花板、圆形或truncate。了解差异,选择能够产生预期结果的因素。
-
请不要依赖外部链接,如果它与问题相关,请包含它在这个问题。
-
如果你想整数那为什么不投掷作为整数?
标签: mysql