2013-06-15 1 views
0

의 세트에서 최대 값을 당겨 나는 다음과 같은 쿼리가 :는 PostgreSQL은 데이터

SELECT user_id, 
greatest(created_at), 
note 
FROM user_notes 

나는이 쿼리는 USER_ID 행에서 중복을 제거 할 생각

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에 여러 개의 "가장 큰 항목"이있는 이유를 파악할 수 없습니다.

답변

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)