我有一个包含两列a和b的表,其中a是ID,b是时间戳。 我需要选择所有不同的a,但我只关心每个ID的最新行。
即。我需要一种方法来选择不同的a条件b值。
有没有办法在postgres中使用DISTINCT ON?
干杯
答案 0 :(得分:3)
像@a_horse_with_no_name建议的那样,解决方案是
SELECT DISTINCT ON (a) a, b FROM the_table ORDER BY a, b DESC
正如the manual所说,
请注意,除非查询,否则集合的“第一行”是不可预测的 按足够的列排序,以保证行的唯一排序 到达
DISTINCT
过滤器。 (DISTINCT ON
处理之后发生ORDER BY
排序。)