类似SELECT DISTINCT ON,但对于N> 1

问题描述 投票:0回答:1

[如果我想在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个条目的语法。但是...

postgresql greatest-n-per-group
1个回答
0
投票

对于n> 1的查询,通常使用窗口函数:

© www.soinside.com 2019 - 2024. All rights reserved.