Sql 从表中获取最高值

Sql 从表中获取最高值,sql,oracle,max,sql-limit,Sql,Oracle,Max,Sql Limit,我试图只显示第一行,在MYSQL中,示例是: ORDER BY foo DESC LIMIT 1; 我相信oracle没有使用LIMIT子句。我尝试了ROWNUM=1,但似乎不起作用。这是显示第一行的正确方式吗 select customer_name, MAX(balance) as "Highest Depositor Value" from depositor inner join account on depositor.account_number =

我试图只显示第一行,在MYSQL中,示例是:

ORDER BY foo DESC LIMIT 1; 
我相信oracle没有使用
LIMIT
子句。我尝试了
ROWNUM=1
,但似乎不起作用。这是显示第一行的正确方式吗

select customer_name, 
       MAX(balance) as "Highest Depositor Value"
  from depositor
 inner join account
    on depositor.account_number = account.account_number
 group by customer_name, balance
 order by balance
 where rownum = 1;


ERROR at line 4:
ORA-00933: SQL command not properly ended
我知道答案了!谢谢

select customer_name,max(balance) as "Highest Depositor Value"
 from depositor
 inner join account
    on depositor.account_number = account.account_number
 group by customer_name, balance order by balance desc
 fetch first 1 rows only;


CUSTOMER_NAME   Highest Depositor Value
 --------------- -----------------------
 Lindsay                          100000
删除此部分:

按余额排序,其中rownum=1

你所拥有的应该有用

马克斯会给你最大的。。。您不需要告诉它有多少行,MAX只给出1个最大值

[编辑] 如果您只需要1个最大值,则需要按删除组/订单。。并从选择中删除“客户名称”:

  select MAX(balance) as "Highest Depositor Value"
  from depositor
  inner join account on depositor.account_number = account.account_number;

[/edit]

我发现答案在这里解释得很好


我试过了,最后选择了11行。这就是为什么我想订购它们并显示第一行。哦,是的,对不起。。11行,每组1行。。您根据客户名称、余额进行分组。。也许你不想分组?你只需要1个最大值?删除GROUPBY和ORDERBY..我将给出一点背景信息。客户名称来自存款人表。每个客户名称可以有多个帐户。我使用group将它们组合在一起,得到这些帐户的总价值。我可以得到这样好的结果。问题是我只想要分组客户的最大值。也许分组不是增加值的方法,但这是我进行的方法。我可以看到最大值,但我不能仅显示该值。在原始问题中发布此信息。。包括样本数据和预期结果。
  select customer_name,max(balance) as "Highest Depositor Value"
2  from depositor
3  inner join account on depositor.account_number = account.account_number
4  group by customer_name, balance order by balance desc
5  fetch first 1 rows only;
CUSTOMER_NAME   Highest Depositor Value
 --------------- -----------------------
 Lindsay                          100000