如何比较Oracle表中的行?

时间:2009-11-06 20:41:13

标签: oracle

我有一张像这样的表

rank continuationofrow
1    row 
2    row 
3    row 
4    row 
4    row  
4    row 

我正在尝试在Oracle语句中识别先前的行排名。任何帮助是极大的赞赏。我搜索过互联网并没有找到太多东西。

2 个答案:

答案 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
  ..