sql - 多条记录具有相同日期时在 SQL 中筛选最大日期
问题描述
我有一个包含以下字段的数据集:building_id
, lease_id
,date_signed
我正在尝试为每个 building_id 签署最新的租约。我遇到的问题是,有几份租约在建筑物中签署的日期相同,我只想包括其中一个。我一直在使用 SnowSQL 并正在研究使用排名窗口函数,但这为建筑物中具有相同日期的记录提供了相同的排名值。
即使在同一日期有多个租约,是否有办法只为每栋建筑物的最近租约日期提取一个值?我还需要知道它与哪个租约相关联。谢谢!
解决方案
使用row_number()
而不是rank()
. 就像是:
select t.*
from t
qualify row_number() over (partition by building_id order by date_signed desc) = 1;
推荐阅读
- php - Laravel 8 显示集合的第 4、第 5 和第 6 个元素
- python - 为什么 discord.py 不让我编辑嵌入?
- c# - 我可以像读取 C# 中的文件一样读取 MemoryStream 吗?
- javascript - 从chart.js中解析的csv向每一列添加不同的点样式
- spring-boot - 如何设置 javax.net.ssl.sessionCacheSize
- indexing - 修复解析错误后,我应该等待谷歌网站管理员多久重新开始抓取和索引?
- java - 在 Android Studio 中,因为 Environment.getExternalStorageDirectory() 可能很快会被删除 如何在根目录中创建文件夹
- flutter - 使用 websocket 连接到 ESP8266
- spring-boot - 如何覆盖 Spring Cloud Stream 的 Jackson ObjectMapper 配置?
- javascript - Javascript 函数 setTimeout DOM 不起作用