给定此表:
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”附近发现语法错误。
帮忙?
最佳答案
您有语法错误,因为where
在group by
之前而不是之后。
老实说,我基本上从不使用all
、some
或any
关键字。我觉得没有必要。如果您想要拥有最高余额的分行,您只需执行以下操作:
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/