给定这张表:
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
我必须 find 编写一个 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;
关于如何使用子查询执行此操作可能会有一个有趣的练习。但更重要的是学习直接方法。
关于使用 ALL 关键字的 mySQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28205017/