经常用经常忘的东西,做个笔记。
- row_number 连续
- rank 并列跳过
- dense_rank 并列不跳过
sql:
with tab as (
select 1 a from dual
union all
select 2 a from dual
union all
select 2 a from dual
union all
select 3 a from dual
)
select a,
row_number() over(order by a) row_number,
rank() over(order by a) rank,
dense_rank() over(order by a) dense_rank
from tab;
A | ROW_NUMBER | RANK | DENSE_RANK |
---|---|---|---|
1 | 1 | 1 | 1 |
2 | 2 | 2 | 2 |
2 | 3 | 2 | 2 |
3 | 4 | 4 | 3 |
一图流,不解释。