【问题标题】:new column with row number sql具有行号 sql 的新列
【发布时间】:2020-09-04 12:43:24
【问题描述】:

我有如下两列的数据,我需要一个带有如下所示新列的输出

输入 -

Name,Date,Value  
Test1,20200901,55  
Test1,20200901,100  
Test1,20200901,150  
Test1,20200805,25  
Test1,20200805,30  

行号基于列中的数据 - 名称和日期

输出,

Name,Date,Value, row_number  
Test1,20200901,55,1  
Test1,20200901,100,1  
Test1,20200901,150,1  
Test1,20200805,25,2  
Test1,20200805,30,2  

使用分区的查询没有帮助

select *, row_number() over (partition by Date) as Rank from Table

有人可以帮忙吗

非常感谢

【问题讨论】:

    标签: sql window-functions hana


    【解决方案1】:

    你想要dense_rank():

    select *,
           dense_rank() over (order by Date) as Rank
    from Table;
    

    当您使用 partition by 而不使用 order by 时会出现一些可疑情况(即使底层数据库支持)。

    【讨论】:

      【解决方案2】:

      使用dense_rank() - 和order by 子句:

      select t.*, dense_rank() over (order by Date) as rn from mytable t
      

      这会为您提供一个从1 开始的序列号,每次date 更改时,最早的date 值递增,没有间隙。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多