从总和中获得最大收益

时间:2019-04-30 13:53:23

标签: mysql

我正在尝试合并三个表以确定最富有的人,看看谁的钱少于一半。

3个表是:

Persons (id, name)

BankAccounts(id,balance)

AccountOf(id,person_id → Persons,account_id → BankAccounts)

在每个表中id唯一的地方

问题是: 编写一个查询,该查询返回财富少于最富有者一半的所有人的名字。我们将一个人的财富定义为他/她所有帐户上的总金额。

我被困在这里。到目前为止,我已经知道了:

SELECT P1.name, SUM(B.balance) as b
FROM Persons P1
LEFT JOIN AccountOf A1
ON A1.person_id = P1.id
LEFT JOIN BankAccounts B
ON B.id = A1.account_id
GROUP BY name

给出每个名字以及他们所有账户余额的总和。但是之后,我无法使用WHERE来确定

SUM(b) < 0.5 * MAX(b)

一无所有的人也应该算作穷人。而且我只想创建一个名称表,后面没有余额。

1 个答案:

答案 0 :(得分:0)

great_magicians