我有列日期,其中日期按升序排序,并且有许多重复日期。在第一列中,我有一个索引,当日期改变时,该索引应该增加1。
现在看起来像这样
表a
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
应该是这样的
表a
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
感谢您的帮助
答案 0 :(得分: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
作为旁注。尽量避免使用date
和index
之类的保留字作为列名。
答案 1 :(得分:0)
您可以在案件中使用CHANGETABLE。
返回表格的更改跟踪信息。您可以使用此信息 用于返回表的所有更改或更改跟踪的语句 特定行的信息。