欢迎投稿

今日深度:

Oracle中partitionby的使用方法讲解,oraclepartitionby

Oracle中partitionby的使用方法讲解,oraclepartitionby


Parttion by 关键字是Oracle中分析性函数,可以进行分组排序,

和row_number()、rank()、dense_rank()函数一起使用

--row_number() 顺序排序

select row_number() over (partition by class order by score desc) 排名 ,NO,score,class from A_TEST

--rank() 跳跃排序,如果有两个第一级别时,接下来是第三级别

select rank() over (partition by class order by score desc) 排名 ,NO,score,class from A_TEST

--dense_rank() 连续排序,如果有两个第一级别时,接下来是第二级

select dense_rank() over (partition by class order by score desc) 排名 ,NO,score,class from A_TEST

A_TEST

NO CLASS SCORE

1001 1 99

1002 2 98

1001 3 97

1004 1 98

1005 1 97

1006 1 99

1007 2 98

1008 3 97

执行结果

①select row_number() over (partition by class order by score desc) 排名 ,NO,score,class from A_TEST;

排名 NO SCORE CLASS

1 1001 99 1

2 1006 99 1

3 1004 98 1

4 1005 97 1

1 1002 98 2

2 1007 98 2

1 1008 97 3

2 1001 97 3

②select rank() over (partition by class order by score desc) 排名 ,NO,score,class from A_TEST;

排名 NO SCORE CLASS

1 1001 99 1

1 1006 99 1

3 1004 98 1

4 1005 97 1

1 1002 98 2

1 1007 98 2

1 1008 97 3

1 1001 97 3

③select dense_rank() over (partition by class order by score desc) 排名 ,NO,score,class from A_TEST;

排名 NO SCORE CLASS

1 1001 99 1

1 1006 99 1

2 1004 98 1

3 1005 97 1

1 1002 98 2

1 1007 98 2

1 1008 97 3

1 1001 97 3

看排名可以知道三种函数的差异。

www.htsjk.Com true http://www.htsjk.com/oracle/24021.html NewsArticle Oracle中partitionby的使用方法讲解,oraclepartitionby Parttion by 关键字是Oracle中分析性函数,可以进行分组排序, 和row_number()、rank()、dense_rank()函数一起使用 --row_number() 顺序排序 select row_nu...
评论暂时关闭