对于作业,我必须组合3个表并编写一个查询,该查询返回所有人的名字,这些人的财富少于最富有人的一半。我们将一个人的财富定义为他/她所有账户的总金额。
3个表格是:
人
id |名字|地址|年龄| eyeColor |性别
BankAccounts
id |平衡
AccountOf
id | person_id→人物| account_id→BankAccounts
我知道如何使用te SUM()函数和MAX()函数,但是将它们组合起来很麻烦。 还有一个没有银行帐户的人。 有谁知道如何做这个任务或者可以给我一个提示?
答案 0 :(得分:1)
不要放弃它,因为它是一项任务,而且那种废物整个事情,但是......你需要为最富有的人找到总和(余额),这将是所有人的最大值人的总和(余额)。这看起来像是:
SELECT
max(personbalance)
FROM
(
Select
sum(balance)
FROM
persons
join accountof
join bankaccounts
GROUP BY persons.id
)subForSum
这只是主查询中的一个子查询,但它应该给你足够的方向来将其余部分打到一起。如果对这些事情有疑问,只需要子查询,子查询和子查询。在得到你期望的答案后,你可以清理它。
答案 1 :(得分:0)
对于正在寻找答案的未来学生:
SELECT max(personbalance)
FROM
(
Select
sum(balance)
FROM
persons
join accountof
join bankaccounts
GROUP BY persons.id
)
祝你好运!