如题,我想用oracle,统计每个用户在一天内查询的次数,然后取查询最多的前十名用户.
在MS-SQL中有top语句可以实现,请问在oracle中我该怎么样实现?请各位帮下忙,在此谢谢了!

解决方案 »

  1.   


    select * from TableName where rownum < 11 order by ...
      

  2.   

    试试这2个。
    SELECT *
      FROM C
     WHERE CID IN (SELECT CID
                     FROM (SELECT CID, ROW_NUMBER() OVER(ORDER BY CID) RN FROM C)
                    WHERE RN <= 10);SELECT *
      FROM C
     WHERE ROWID IN
           (SELECT ROWID
              FROM (SELECT ROWID, ROW_NUMBER() OVER(ORDER BY CID) RN FROM C)
             WHERE RN <= 10);
      

  3.   

    select *
    from 
    (select t.*,row_number() over(order by id) rn)
    where rn<=10;
      

  4.   

    row_number() over(partition by order by)
      

  5.   

    这个查询用oracle的统计函数来实现最好,上面的2楼3楼都是用的这个方法,建议你把表结构和测试数据及结果给出来,大家可以更有针对性地帮你写.给你一个连接,可以搜索analytic_function部分,学习一下分析函数
    http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/functions001.htm#i88893
      

  6.   

    select * from table_name where pk in
    (select pk from  (select pk ,sum(num) num from table_name group pk ) where row_num<11 order by num)
      

  7.   

    select * from (select * from table order by id) a where rownum<11