Dense_rank

oracle分析函数Rank, Dense_rank, row_number

强颜欢笑 提交于 2020-03-11 18:02:37
一、使用 rownum 为记录排名: 在前面一篇《 Oracle 开发专题之:分析函数》,我们认识了分析函数的基本应用,现在我们再来考虑下面几个问题: ① 对所有客户按订单总额进行排名 ② 按区域和客户订单总额进行排名 ③ 找出订单总额排名前 13 位的客户 ④ 找出订单总额最高、最低的客户 ⑤ 找出订单总额排名前 25% 的客户 按照前面第一篇文章的思路,我们只能做到对各个分组的数据进行统计,如果需要排名的话那么只需要简单地加上 rownum 不就行了吗?事实情况是否如此想象般简单,我们来实践一下。 【 1 】测试环境: SQL > desc user_order; Name Null ? Type ----------------------------------------- -------- ---------------------------- REGION_ID NUMBER ( 2 ) CUSTOMER_ID NUMBER ( 2 ) CUSTOMER_SALES NUMBER 【 2 】测试数据: SQL > select * from user_order order by customer_sales; REGION_ID CUSTOMER_ID CUSTOMER_SALES ---------- ----------- -------------- 5 1