给定此表:

account_number branch_name balance
A-101          Downtown        500
A-102          Perryridge      400
A-201          Brighton        900
A-215          Mianus          700
A-217          Brighton        750
A-222          Redwood         700
A-305          Round Hill      350

我必须编写一个mysql查询来查找平均余额最大的分支(branch_name)。我试图理解如何使用all关键字。
我试过以下方法:
SELECT branch_name,avg(balance)
FROM account GROUP BY branch_name
WHERE avg(balance) >= ALL (
SELECT avg(balance)
FROM account GROUP BY branch_name
);

不过,我在“where avg(balance)>=all”附近发现语法错误。
帮忙?

最佳答案

您有语法错误,因为wheregroup by之前而不是之后。
老实说,我基本上从不使用allsomeany关键字。我觉得没有必要。如果您想要拥有最高余额的分行,您只需执行以下操作:

SELECT branch_name, avg(balance)
FROM account
GROUP BY branch_name
ORDER BY avg(balance) DESC
LIMIT 1;

对于如何使用子查询执行此操作,可能有一个有趣的练习。但更重要的是学习直接的方法。

关于mysql - 使用ALL关键字的MySQL查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28205017/

10-13 03:19