You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

窗口函数RANK()、DENSE_RANK()按邮箱分组取最新3个税号问题

问题原因

你当前的DENSE_RANK写法直接以每行的Created Date作为排序依据,当同一个Tax Number存在多条不同创建日期的记录时,这些记录会被拆分到不同的排名分组中,不符合「同一税号统一按其最新创建日期计算排名」的需求。

修正方案

你需要先给每个邮箱下的同一税号,统一计算其最新的创建日期,再基于这个统一的最新日期做排名,写法如下:

DENSE_RANK() OVER (
    PARTITION BY M.[Email] 
    ORDER BY 
        -- 先取当前邮箱下,该税号所有记录的最新创建日期作为第一排序依据
        MAX(A.[Created Date]) OVER (PARTITION BY M.[Email], A.[Tax Number]) DESC,
        A.[Tax Number] DESC
) AS [Ranking]

逻辑说明

  1. 内层的MAX() OVER()窗口函数,会为同一个邮箱下的同一个税号的所有行,返回该税号所有记录里的最新创建日期,确保同一税号的所有行排序的第一依据完全一致
  2. 外层DENSE_RANK基于统一的最新日期排序,同一税号的所有行自然会得到相同的排名
  3. 后续你只需过滤Ranking <= 3,即可拿到每个邮箱关联的最新3个税号的所有记录,完全匹配预期效果。

内容的提问来源于stack exchange,提问作者maximodesousadias

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 14:06:05