[Postgresql]1つ前のレコードを取得する
カテゴリ:IT関連
LAG と OVER と WITH を使う。
ちなみに WITH 句を使わない
だとリスト上に前の id がないから null になる。
WITH tmp AS (
SELECT id, LAG(id, 1, null) OVER (ORDER BY id) AS before_id
FROM table ORDER BY id DESC
)
SELECT before_id FROM tmp WHERE id = /*id*/
ちなみに WITH 句を使わない
SELECT id, LAG(id, 1, null) OVER (ORDER BY id) AS before_id
FROM apply ORDER BY id DESC
WHERE id = /*id*/
だとリスト上に前の id がないから null になる。