在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
它仍然会返回两个记录而不是最新记录。
答案 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;