按最大日期返回最新记录选择recond

时间:2017-11-26 11:07:45

标签: sql postgresql greatest-n-per-group

在PostgreSQL数据库中,我有一个具有相同外键的2x记录但是日期/时间不同的表,我希望在LEFT JOIN子查询中选择一个只返回最大记录(最新的记录) 。然后,ON子句将用于外键。

Foreign Key | date_created
1           | 2017-11-24 17:22:01
1           | 2017-11-23 17:32:20

我希望最新纪录是2017-11-23 17:32:20

我尝试了什么:

SELECT sa.foreign_key, max(date_created) as date_created
FROM table sa
GROUP BY sa.foreign_key, sa.date_created

它仍然会返回两个记录而不是最新记录。

1 个答案:

答案 0 :(得分:1)

您可以使用ROW_NUMBER

SELECT *
FROM (SELECT *, 
      ROW_NUMBER() OVER(PARTITION BY sa.foreign_key 
                        ORDER BY sa.date_created DESC) AS rn
      FROM table sa) sub
WHERE rn = 1;