2013年9月2日月曜日

履歴テーブルから各IDの最新レコードを取得する方法(PostgreSQL)

PostgreSQL8.4 以降に限るが、分析関数を使用すると以下のように取得することができる。
   OVER (PARTITION BY ...) : 区間に分割
   OVER (ORDER BY ...) : 区間ごとに並び替え

select * from (
 select *,
        row_number() over(partition by code order by kaiteiymd desc) as rowNo
 from history
) list
where rowNo = 1

0 件のコメント:

コメントを投稿