我有以下查询:
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”。
答案 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)