Oracle常用的用于排序的分析函数有3种,rank()、dense_rank()、row_number();
测试表如下:
1、rank() 跳跃式排名
with temp as
(
select t_id,t_age, rank() over(order by t_age desc) sec from aaa
)
select * from temp
--where sec=1--,加上此过滤条件,即可找出排名为1的记录
如果指定分组的话,如下:
with temp as
(
select t_id,t_age, rank() over(partition by t_id order by t_age desc) sec from aaa
)
select * from temp
--where sec=1--每组里排名为1的
2、dense_rank() 正常式(非跳跃式)排名
with temp as
(
select t_id,t_age, dense_rank() over(order by t_age desc) sec from aaa
)
select * from temp
--where sec=1
本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/database/Oracle/
时间: 2025-01-30 03:02:43