PostgreSQL 查询基于连接条件和 max(date) 获取属性
Posted
技术标签:
【中文标题】PostgreSQL 查询基于连接条件和 max(date) 获取属性【英文标题】:PostgreSQL query to get attributes based on join condition and max(date) 【发布时间】:2013-11-17 02:07:25 【问题描述】:我在下面有表格结构(屏幕)。我想要如图所示的结果查询:根据 row_wid 和 max(req_createdOn) 日期字段从第一个表和第二个表中,获取 req_attr1 和 req_attr_2 值。我正在使用 Greenplum 数据库(大致兼容 PostgreSQL 8.2)。
TIA。
第二屏: 如您所见,t1 中有两个 row_wid。对于 t2 中 t1 的每个 row_wid,我们需要检查最大的 req_createdOn 日期并获取 attr1、attr2 的 max(req_createdOn)。任何的想法?很抱歉没有把这个条件放在第一个屏幕上。非常感谢。
【问题讨论】:
【参考方案1】:PostgreSQL 中有特殊的查询语法,distinct on 子句:
select distinct on (t2.Row_wid)
t1.sn, t1.Geo, t1.Region,
t1.req_attr_1, t1.req_attr_2
from table1 as t1
inner join table2 as t2 on t2.Row_wid = t1.Row_wid
order by t2.Row_wid, t2.req_created_on desc
【讨论】:
以上是关于PostgreSQL 查询基于连接条件和 max(date) 获取属性的主要内容,如果未能解决你的问题,请参考以下文章