0

我正在使用 SQL Developer for Oracle 11g ..

我需要能够遍历一组日期,检查上面或下面的日期是否为 = 或 < 或 >..

然后分配一个与其 = 相同的行程编号或分配一个新的行程编号,然后开始新的行程并再次检查下一个日期以查看其 = 或 < 或 > 是否比当前日期..

我认为为了做到这一点,我需要使用 pl/sql 游标进行循环。我试图弄清楚,但它对我来说没有多大意义。

例如,我希望最终结果是这样的..

ROWID     DATE        TRIP
  1         1-Jan-12    1
  2         2-Jan-12    2
  3         2-Jan-12    2
  4         3-Jan-12    3
  5         4-Jan-12    4
  6         1-Jan-12    1
  7         4-Jan-12    4

在此先感谢您的帮助。亚历克斯

4

1 回答 1

0

你根本不需要循环!您所需要的只是分析函数dense_rank:

select t.*,
       dense_rank() over (order by startdate) as trip
from t
于 2012-08-27T15:54:45.127 回答