PostgreSQL查询根据连接条件和max(日期)获取属性

时间:2013-11-17 02:07:26

标签: postgresql greenplum

下面有表结构(屏幕)。我希望结果查询如下所示:从第一个表和第二个表开始,基于row_wid和max(req_createdOn)日期字段,获取req_attr1和req_attr_2值。我正在使用Greenplum数据库(大致与PostgreSQL 8.2兼容)。

TIA。

enter image description here

第二个屏幕: 如您所见,t1中有两个row_wid。对于t2中t1的每个row_wid,我们需要检查最大的req_createdOn日期并得到attr1,attr2为max(req_createdOn)。任何的想法?很抱歉没有把这个条件放在第一个屏幕上。非常感谢。 enter image description here

1 个答案:

答案 0 :(得分:2)

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