2

我有列日期,其中日期按升序排序,并且有很多重复日期。在第一列中,我的索引应该在日期更改时增加 1。

现在看起来像这样

表一

index      date  
---------------------
1       2001-03-01  
1       2001-03-01  
1       2001-03-01  
1       2001-04-01  
1       2001-04-01  
1       2001-04-01  
1       2001-05-01  

应该是这样的

表一

index   date  
-----------------
1      2001-03-01  
1      2001-03-01  
1      2001-03-01  
2      2001-04-01  
2      2001-04-01  
2      2001-04-01  
3      2001-05-01  

感谢帮助

4

2 回答 2

1

为了得到想要的结果,可以使用dense_rank()解析函数。这是一个例子:

select dense_rank() over(order by date1) as index1
     , date1
  from tab_a

结果:

INDEX1      DATE1
--------------------
1         2001-03-01
1         2001-03-01
1         2001-03-01
2         2001-04-01
2         2001-04-01
2         2001-04-01
3         2001-05-01

SQLFiddle 演示

作为旁注。尽量避免使用保留字,例如dateindex作为列名。

于 2013-08-25T17:55:14.350 回答
0

您可以将CHANGETABLE用于您的案例。

返回表的更改跟踪信息。您可以使用此语句返回表的所有更改或特定行的更改跟踪信息。

于 2013-08-25T17:37:43.090 回答