我有一张像这样的表
rank continuationofrow
1 row
2 row
3 row
4 row
4 row
4 row
我正在尝试在Oracle语句中识别先前的行排名。任何帮助是极大的赞赏。我搜索过互联网并没有找到太多东西。
答案 0 :(得分:2)
您必须有另一列建立具有相同排名的行的顺序,否则“前一行”的概念毫无意义。我们假设你这样做:
seq rank continuationofrow
1 1 row
2 2 row
3 3 row
4 4 row
5 4 row
6 4 row
不,您可以使用分析功能:
select seq, rank, continuationofrow, lag(rank) over (order by seq) as prev_rank
from mytable;
seq rank continuationofrow prev_rank
1 1 row
2 2 row 1
3 3 row 2
4 4 row 3
5 4 row 4
6 4 row 4
答案 1 :(得分:1)
select
...
lag(rank, 1) over (order by ordering-columns)
from
..