我试图编写一个查询我的表的SQL查询,然后在其中一个列的结果集中返回一个不同的递增值,但对于重复项,它将具有相同的值。我找不到合适的词来解释它,但是一个例子应该清除它。这是一个示例表:
Date ActionTaken UserID
2017-12-5 Update 1
2017-12-6 Add 1
2017-12-6 Delete 1
2017-12-7 Update 1
2017-12-8 Update 1
2017-12-8 Delete 1
当我进行查询时,我希望结果如下:
Date ActionTaken UserID
Day 1 Update 1
Day 2 Add 1
Day 2 Delete 1
Day 3 Update 1
Day 4 Update 1
Day 4 Delete 1
ActionTaken
和UserID
数据无关紧要,我只是希望能够按Date
列中的值进行分组,然后通过递增为其分配新值number,将具有相同Date
值的行分组以具有相同的数字。
答案 0 :(得分:1)
我想你想要dense_rank()
:
select dense_rank() over (order by date) as seqnum,
. . .
from t;
这会返回一个数字。您可以随意在号码前添加date
。