【问题标题】:Filtering for Max Date in SQL when Multiple Records have the Same Date多条记录具有相同日期时在 SQL 中筛选最大日期
【发布时间】:2021-06-29 20:41:58
【问题描述】:

我有一个包含以下字段的数据集:building_idlease_iddate_signed

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

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

【问题讨论】:

  • 样本数据和期望的结果会有所帮助。只标记您真正使用的数据库。
  • 欣赏建议。谢谢!

标签: sql snowflake-cloud-data-platform window-functions


【解决方案1】:

使用row_number() 代替rank()。比如:

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

【讨论】:

  • 认为你最后错过了一个 1。
  • @DavidGarrison 。 . .谢谢。
猜你喜欢
  • 2011-06-16
  • 1970-01-01
  • 1970-01-01
  • 2023-01-30
  • 2020-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多