PostgreSQL从一组数据中提取MAX值

时间:2013-06-15 01:17:24

标签: postgresql postgresql-9.2

我有以下查询:

SELECT user_id,
greatest(created_at),
note
FROM user_notes

哪个输出

user_id     greatest            latest_note
12345       2012-09-05             note1
23456       2013-09-01             note2
23456       2013-09-02             note3
etc.              etc.              etc.

我认为这个查询会消除user_id行的重复。我希望每个user_id只有一个“最大”的结果。我似乎无法弄清楚为什么同一个user_id有多个“greatests”。

1 个答案:

答案 0 :(得分:1)

我认为您希望MAX()不是GREATEST()

WITH latest AS (
   SELECT user_id, max(created_at) AS created_at
   FROM user_notes
   GROUP BY user_id)
SELECT user_notes.*
FROM user_notes
INNER JOIN latest
USING (user_id, created_at)