首页 > 解决方案 > 多条记录具有相同日期时在 SQL 中筛选最大日期

问题描述

我有一个包含以下字段的数据集:building_id, lease_id,date_signed

我正在尝试为每个 building_id 签署最新的租约。我遇到的问题是,有几份租约在建筑物中签署的日期相同,我只想包括其中一个。我一直在使用 SnowSQL 并正在研究使用排名窗口函数,但这为建筑物中具有相同日期的记录提供了相同的排名值。

即使在同一日期有多个租约,是否有办法只为每栋建筑物的最近租约日期提取一个值?我还需要知道它与哪个租约相关联。谢谢!

标签: sqlsnowflake-cloud-data-platformwindow-functions

解决方案


使用row_number()而不是rank(). 就像是:

select t.*
from t
qualify row_number() over (partition by building_id order by date_signed desc) = 1;

推荐阅读