私は日付の列を含むテーブルを持っています。SQL:行ごとに次の日付値を取得
ID | Date
----|-----------
1 | 2000-01-01
2 | 2000-02-01
3 | 2000-02-01
4 | 2000-03-01
Iは、現在の日付よりも大きい場合、各行、ID、日付及び(テーブル内のすべての日付の)最小の日付を返し、その選択を必要とします。
ID | Date | Next date
----+------------+------------
1 | 2000-01-01 | 2000-02-01
2 | 2000-02-01 | 2000-03-01
3 | 2000-02-01 | 2000-03-01
4 | 2000-03-01 | (NULL)
私の最初のアプローチの列DATEの値が一意である場合、
SELECT id, date, LEAD (date, 1) OVER (ORDER BY date NULLS LAST) AS next_date
FROM t
しかし、これだけ作品でした。
アイデア?
a.date> b.dateというクエリでグループに参加し、bで最初に見つかったレコードのみを使用しますか? – nabuchodonossor