mySQL查询使用ALL关键字

时间:2015-01-29 00:26:40

标签: mysql database

鉴于此表:

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"附近出现语法错误虽然。 帮助

2 个答案:

答案 0 :(得分:1)

您遇到语法错误,因为wheregroup by之前而不是之后

说实话,我基本上从不使用allsomeany关键字。我发现他们没必要。如果您想要具有最高余额的分支,您可以简单地执行:

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);

这允许联系!