如何解决与分组依据一起获取最新日期记录
我正在尝试获取具有唯一report_id(col_1_0_)的最新记录的记录。 可能按col_1_0_分组,并使用此列col_10_0_时间戳获取该组记录的最新记录。
我试图在这个论坛上进行搜索以找到方法,但是它对我没有用。如果有人帮助我找到相似的线索或帮助取得结果,这将很有帮助。
col_1_0_|ppi_event_id|col_2_0_ |col_10_0_ |
--------|------------|--------------------------|-----------------------|
149056| 3249|Draft |2020-08-25 13:01:49.016|
149056| 3249|Submitted | 2020-08-25 13:10:22.01|
149056| 3249|Submitted to administrator|2020-08-25 13:12:39.367|
149056| 3249|Validated |2020-08-25 13:13:28.879|
149060| 3249|Submitted to administrator|2020-08-25 13:32:41.924|
预期结果是
col_1_0_|ppi_event_id|col_2_0_ |col_10_0_ |
--------|------------|--------------------------|-----------------------|
149056| 3249|Validated |2020-08-25 13:13:28.879|
149060| 3249|Submitted to administrator|2020-08-25 13:32:41.924|
在这方面的任何人帮助。 更新:我已经尝试过下面提到的解决方案,但有时它会显示第一个记录“草稿”而不是“已验证” 还有其他选择吗?
解决方法
在Postgres中,我建议使用distinct on
:这是对SQL标准的一个很好的扩展,它是专门为您描述的目的而构建的。
select distinct on (col_1_0) t.*
from mytable t
order by col_1_0,col_10_0_ desc
,
传统的SQL格式是使用row_number()
SELECT * FROM (
SELECT A.*,ROW_NUMBER() OVER( PARTITION BY col_1_0_ ORDER BY col_10_0_) AS RN
FROM TABLE1 A ) X WHERE RN = 1;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。