在 SQL 中使用 ANY/ALL 显示 table 中的最高条目
Using ANY/ALL in SQL to show highest entry in a table
我正在为考试练习并卡在这个问题上:
Write a SQL statement to find which customer name has the
highest balance out of all the Balances. (You must use either ALL or ANY).
来自 table Deposit
的示例(也是最高余额)行
INSERT INTO Deposit(customerName, branchName, accountNumber, balance)
VALUES ('Jones', 'HFE', '42', '4100.00');
这是我尝试过的方法:
SELECT customerName
FROM Deposit
WHERE balance > ALL
(SELECT balance
FROM Deposit
WHERE balance >= balance);
如何解决此问题才能显示余额最高的客户名称?
谢谢
假设您有这样的数据:
create table deposit ( customerName, balance) as (
select 'cust1', 100 from dual UNION ALL
select 'cust2', 500 from dual UNION ALL
select 'cust3', 500 from dual UNION ALL
select 'cust4', 400 from dual UNION ALL
select 'cust5', 400 from dual
)
你需要:
select customerName
from deposit
where balance >= ALL ( select balance from deposit)
给出:
cust2
cust3
你的代码出了什么问题:
- 你有一个无用的
where
条件:这个条件不仅简单地对照自身检查一列,而且它是无用的,因为你只是希望你的结果 customerName
的余额大于每个人的, 无条件
- 你有一个严格的
>
而不是 >=
,因此不匹配任何值
我正在为考试练习并卡在这个问题上:
Write a SQL statement to find which customer name has the highest balance out of all the Balances. (You must use either ALL or ANY).
来自 table Deposit
INSERT INTO Deposit(customerName, branchName, accountNumber, balance)
VALUES ('Jones', 'HFE', '42', '4100.00');
这是我尝试过的方法:
SELECT customerName
FROM Deposit
WHERE balance > ALL
(SELECT balance
FROM Deposit
WHERE balance >= balance);
如何解决此问题才能显示余额最高的客户名称?
谢谢
假设您有这样的数据:
create table deposit ( customerName, balance) as (
select 'cust1', 100 from dual UNION ALL
select 'cust2', 500 from dual UNION ALL
select 'cust3', 500 from dual UNION ALL
select 'cust4', 400 from dual UNION ALL
select 'cust5', 400 from dual
)
你需要:
select customerName
from deposit
where balance >= ALL ( select balance from deposit)
给出:
cust2
cust3
你的代码出了什么问题:
- 你有一个无用的
where
条件:这个条件不仅简单地对照自身检查一列,而且它是无用的,因为你只是希望你的结果customerName
的余额大于每个人的, 无条件 - 你有一个严格的
>
而不是>=
,因此不匹配任何值