ORACLE中分组之后查询前N条数据的方法

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Joze_3/article/details/81011096

最近遇到这样的问题,留个记录。
使用Oracle提供的方法 ROW_NUMBER() OVER()来实现。

ROW_NUMBER() OVER(partition by 分组字段 order by 排序字段 desc) 其中order by 是必须的,是按这个字段排序生成对应的rownumber。下面的sql查询按地区排序后的前十条语句,假设表DIS_TABLE中有字段cuid,province,status,可用如下sql:

SELECT TB.*
  FROM (SELECT DIS.*,
               ROW_NUMBER() OVER(PARTITION BY DIS.PROVINCE ORDER BY DIS.CUID DESC) RN
          FROM DIS_TABLE DIS) TB
 WHERE TB.RN < 11;
展开阅读全文

没有更多推荐了,返回首页