`
53873039oycg
  • 浏览: 824986 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Oracle分组排序后取前百分之N(每个分组)

阅读更多

    

 

select empno, ename, deptno, sale
  from (select empno,
               ename,
               sale,
               deptno,
               row_number() over(partition by deptno order by sale desc nulls last) as r_num,
               count(*) over(partition by deptno) as n_rows
          from emp)
 where r_num <= round(n_rows * &n / 100)
 order by deptno, sale desc;

    参考了博客https://community.oracle.com/thread/2539806?tstart=0,本人抛砖引玉,欢迎提出更好的方法,如有错误也请指出。谢谢

 

    全文完

 

0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics