如何在Oracle SQL中将结果限制为1行

Sat*_*wik 5 oracle

我有这个成功运行的查询

SELECT customerNumber
FROM ORDERS 
GROUP BY customerNumber 
ORDER BY count(orderNumber) DESC
Run Code Online (Sandbox Code Playgroud)

但是当我尝试将返回的行数限制为1时,我收到以下错误

ORA-00933: SQL command not properly ended 
Run Code Online (Sandbox Code Playgroud)

这是我尝试过的:

SELECT customerNumber
FROM ORDERS 
GROUP BY customerNumber 
ORDER BY count(orderNumber) DESC
fetch first 1 row only;
Run Code Online (Sandbox Code Playgroud)

SELECT customerNumber
FROM ORDERS 
GROUP BY customerNumber 
ORDER BY count(orderNumber) DESC
WHERE ROWNUM=1;
Run Code Online (Sandbox Code Playgroud)

Rad*_*hiu 7

在Oracle中,您需要先进行排序,然后选择rownum.因此,您需要嵌套返回已排序数据的查询并在WHERE外部使用过滤子句.

SELECT * FROM
(
 SELECT customerNumber
 FROM ORDERS 
 GROUP BY customerNumber 
 ORDER BY count(orderNumber) DESC
) resultSet
WHERE ROWNUM=1;
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

20711 次

最近记录:

8 年,12 月 前