【问题标题】:PostgreSQL query to get attributes based on join condition and max(date)PostgreSQL 查询基于连接条件和 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)。任何的想法?很抱歉没有把这个条件放在第一个屏幕上。非常感谢。

【问题讨论】:

    标签: postgresql greenplum


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 2010-10-27
      • 1970-01-01
      • 1970-01-01
      • 2021-10-27
      • 2018-10-29
      • 2016-06-30
      • 1970-01-01
      • 2020-11-01
      • 1970-01-01
      相关资源
      最近更新 更多