【问题标题】:Particular Case of Window Functions RANK(), DENSE_RANK() , etc窗口函数 RANK()、DENSE_RANK() 等的特殊情况
【发布时间】:2022-01-04 01:32:00
【问题描述】:

我希望获得与每个Email 关联的最后三个Tax Numbers,按Created Date 列排序。 例如:

Email           Tax N°  Created Date    Rank
dam_10@o.com    708157054   27-09-16    1
dam_10@o.com    708157054   27-09-16    1
dam_10@o.com    21714574    27-08-16    2
dam_10@o.com    21714574    27-08-16    2
dam_10@o.com    21714574    27-08-16    2
dam_10@o.com    21714574    27-08-16    2
dam_10@o.com    21714574    24-08-16    2
dam_10@o.com    20222011877 04-08-15    3
dam_10@o.com    20222011877 04-08-15    3
dam_10@o.com    33546663669 28-08-13    4
dam_10@o.com    30523312398 28-08-13    5
dam_10@o.com    30523312398 28-08-13    5
est_20@r.com    123722900   28-08-13    1
est_20@r.com    512381112   28-08-13    2

我尝试使用窗口函数DENSE_RANK(),但我无法调试Created Date不同但Tax Number相同的情况:

DENSE_RANK() OVER (PARTITION BY M.[Email] ORDER BY A.[Created Date] DESC, A.[Tax Number] DESC) AS [Ranking]

It should be Rank 2

【问题讨论】:

    标签: sql function rank row-number dense-rank


    【解决方案1】:

    我先用下面的函数解决了MAX(A.[Created Date]) OVER (PARTITION BY [Email], [Tax Number]) AS [Last Created Date]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-16
      • 2012-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多