SQL组重复值并返回为新值

时间:2017-12-13 20:49:24

标签: sql sql-server database

我试图编写一个查询我的表的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

ActionTakenUserID数据无关紧要,我只是希望能够按Date列中的值进行分组,然后通过递增为其分配新值number,将具有相同Date值的行分组以具有相同的数字。

1 个答案:

答案 0 :(得分:1)

我想你想要dense_rank()

select dense_rank() over (order by date) as seqnum,
       . . .
from t;

这会返回一个数字。您可以随意在号码前添加date