2015-05-21 272 views
-1

即时尝试获取最多行出现在表中,当我在rownum中使用时出现错误:“SQL命令没有正确结束”,还有其他事情我可以做吗?rownum does not work sql

select src_customer ,count(sending.src_customer) as bla 
    from sending 
    group by sending.src_customer 
    order by bla desc 
    where rownum=1; 
+2

rownums order by子句之前进行分配。使用顶部或SELECT * FROM ( 选择src_customer,从由BLA倒序发送 组由sending.src_customer 顺序计数(sending.src_customer)作为BLA ) 其中ROWNUM = 1; – bassxzero

回答

1

您的WHERE子句应该在FROM子句之后。

Oracle documentation for more details

所以,您的查询应该像

select src_customer ,count(sending.src_customer) as bla 
    from sending 
    where rownum=1 
    group by sending.src_customer 
    order by bla desc 
    ; 
2

想必,你想最大的一行。在Oracle 12,你可以使用ANSI标准FETCH条款:

select src_customer, count(s.src_customer) as bla 
from sending s 
group by s.src_customer 
order by bla desc 
fetch first 1 row only; 

在早期版本中,你需要一个子查询:

select * 
from (select src_customer, count(s.src_customer) as bla 
     from sending s 
     group by s.src_customer 
     order by bla desc 
    ) s 
where rownum = 1;