SQL> select dense_rank(2000) within group(order by e.sal desc) "Rank" 2 from emp e; Rank --- 6 假定薪水为2000的员工,按照薪水从高到低在样表中排第7名。 2.4解析函数的例子 按照薪水从高到低进行排名: SQL> select e.ename, 2 e.sal, 3 dense_rank() over(order by e.sal desc) "Ran...
select m.a,m.b,m.c,dense_rank() over(partition by a order by b) liu from test3 m A B C LIU a cai kai 1 a jin shu 2 a liu wang 3 b lin ying 1 b yang du 2 b yang 99 2 b yao cai 3 那么再回到之前的那个需求, SQL> select distinct * from (select rank() over(partiti...
rank(),dense_rank(),row_number() 是oracle 提供的统计函数,看看下面的例子就知道他们的作用了. 创建测试表 并准备数据 CREATE TABLE test_rank_sales ( location_name VARCHAR2(20), month_flag number, sales NUMBER, manager VARCHAR2(20), create_stamp DATE); /insert into test_rank_sales values('S...
Oracle分析函数-排序排列(rank、dense_rank、row_number、ntile) (1)rank函数返回一个唯一的值,除非遇到相同的数据时,此时所有相同数据的排名是一样的,同时会在最后一条相同记录和下一条不同记录的排名之间空出排名。(2)dense_rank函数返回一个唯一的值,除非当碰到相同数据时,此时所有相同数据的排名都是一样的。
RANK() 和 DENSE_RANK() 函数之间的唯一区别在于存在“平局”的情况;即,在一组中的多个值具有相同排名的情况下。在这种情况下,RANK() 将为集合中的值分配不连续的“排名”(导致出现平局时整数排名值之间的差距),而 DENSE_RANK() 将为集合中的值分配连续的排名设置(因此在平局的情况下整数排名值之间不会有差...
如果将上述ran()换成dense_ran(),那么SQL如 select s.*, dense_rank() over(order by s.grade desc) rnk from score s 通过rank()和dense_ran()查询对比,dense_ran()的排序出来的rnk字段是连续的,从1到11。 ran()的排序结果是不连续的从1到12,造成这一现象的原因是胖虎的数学和静香的语文成绩相同,...
Oracle分析函数——函数RANK,DENSE_RANK,FIRST,LAST… RANK 功能描述:根据ORDER BY子句中表达式的值,从查询返回的每一行,计算它们与其它行的相对位置。组内的数据按ORDER BY子句排序,然后给每一行赋一个号,从而形成一个序列,该序列从1开始,往后累加。每次ORDER BY表达式的值发生变化时,该序列也随之增加。有同样值...
SQL>selectregion_id, customer_id, sum(customer_sales) total, 2rank()over(partitionbyregion_id orderbysum(customer_sales)desc) rank, 3dense_rank()over(partitionbyregion_id orderbysum(customer_sales)desc) dense_rank, 4row_number()over(partitionbyregion_id ...
SQL: select *from (select rank() over(partition by a.subject order by a.score desc) rk,a.*from xgj_2 a) twhere t.rk <= 3; 栗子3 拿第二个栗子的表 作为数据源。 合计功能:计算出数值(65,’语文’)在Orade By score ,subject排序下的排序值,也就是score=65,subject=语文在排序以后的位置...
现执行SQL语句: 复制 Select EMPLOYEENAME,SALARY,RANK() OVER (Order By SALARY Desc) "RANK",DENSE_RANK() OVER (Order By SALARY Desc ) "DENSE_RANK",ROW_NUMBER() OVER(Order By SALARY Desc) "ROW_NUMBER"From EMPLOYEEINFO 1. 2. 3.