鉴于此表:
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"附近出现语法错误虽然。 帮助
答案 0 :(得分:1)
您遇到语法错误,因为where
在 group by
之前而不是之后。
说实话,我基本上从不使用all
,some
或any
关键字。我发现他们没必要。如果您想要具有最高余额的分支,您可以简单地执行:
SELECT branch_name, avg(balance)
FROM account
GROUP BY branch_name
ORDER BY avg(balance) DESC
LIMIT 1;
对于如何使用子查询执行此操作,可能会有一个有趣的练习。但是学习直接方法更为重要。
答案 1 :(得分:0)
我把它拿回来。 ALL
完全 这里需要什么!!!
SELECT branch_name
, AVG(balance)
FROM account
GROUP
BY branch_name
HAVING AVG(balance) >= ALL(SELECT AVG(balance)
FROM account
GROUP
BY branch_name);
这允许联系!