所以通常情况下,如果我想获取此表中每种类型的最新版本:
type | date
-----------------
A | 2008-07-06
B | 2014-08-02
A | 2009-12-27
A | 2004-03-01
B | 2008-10-17
B | 2015-01-01
我会这样做:
SELECT DISTINCT ON (type) type, date
FROM t
ORDER BY type, date DESC;
但是,如果我不想获取最新的,而是第二个最新的怎么办?所以:
type | date
-----------------
A | 2008-07-06
B | 2014-08-02
最佳答案
嗯,正在看Grouped LIMIT in PostgreSQL: show the first N rows for each group? ,我想到了:
SELECT * FROM (
SELECT type, date, ROW_NUMBER()
OVER (PARTITION BY type ORDER BY date DESC) AS row FROM t
) tmp
WHERE tmp.row=2;
关于sql - 选择第二个最新日期的条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35110421/