【问题标题】:SQL Group Duplicate Values and Return as a New ValueSQL 分组重复值并作为新值返回
【发布时间】:2018-05-27 20:47:22
【问题描述】:

我正在尝试编写一个 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 列中的值分组,然后为它们分配一个带有递增数字的新值,将具有相同@ 的行分组987654326@ 值具有相同的数字。

【问题讨论】:

    标签: sql sql-server database


    【解决方案1】:

    我想你想要dense_rank():

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

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

    【讨论】:

    • 完美!非常感谢。
    猜你喜欢
    • 1970-01-01
    • 2018-03-01
    • 2013-07-18
    • 2015-07-22
    • 1970-01-01
    • 1970-01-01
    • 2020-09-23
    • 2014-12-08
    • 2011-12-27
    相关资源
    最近更新 更多