Sql 从表中获取最高值
我试图只显示第一行,在MYSQL中,示例是: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 =
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