1:排名,不考虑并列问题 row_number()
2:排名,有并列,并列后的排名不连续 rank()
2:排名,有并列,并列后的排名不连续 rank()
3:排名,有并列,并列后的排名连续 dense_rank()
测试:
SQL> create table test1
2 (id number,
3 name varchar2(10),
4 salary number);
Table created --创建测试表;
插入输入数据:
SQL> insert into test1 values(1,'zhangsan',1000);
1 row inserted
SQL> insert into test1 values(2,'lisi',1200);
1 row inserted
SQL> insert into test1 values(3,'wangwu',1200);
1 row inserted
SQL> insert into test1 values(3,'zhaosi',2000);
1 row inserted
查看表格:
SQL> SELECT ID,name,salary,
2 row_number() OVER (ORDER BY salary DESC)o1,
3 RANK() OVER (ORDER BY salary DESC) o2,
4 dense_rank() OVER (ORDER BY salary DESC) o3
5 FROM test1;
ID NAME SALARY O1 O2 O3
---------- ---------- ---------- ---------- ---------- ----------
3 zhaosi 2000 1 1 1
2 lisi 1200 2 2 2
3 wangwu 1200 3 2 2
1 zhangsan 1000 4 4 3