[如果我想在postgres中获取字段的第一行或最近的单行,select distinct on
看起来不错,see this answer。
DISTINCT ON
是仅需要1个条目的语法。但是,如果我要N个最新条目怎么办?我将如何转换:
CREATE VIEW your_view AS
SELECT DISTINCT ON (id) *
FROM your_table a
ORDER BY id, date DESC;
但是]
“每个ID选择最近的n = 2个条目”,而不是“每个ID选择最近的n = 1个条目?” ?
我认为这是一个按子查询分组的对象,但是我不太清楚。
如果我想在postgres的字段中获得第一行或最新的单行,选择“不重复显示”似乎很棒,请参见此答案。 DISTINCT ON是只需要1个条目的语法。但是...
对于n> 1的greatest-n-per-group查询,通常使用窗口函数: