- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- PostgreSQL/SQL/相関サブクエリ/ある項目が初出した行を求める2 へ行く。
- 1 (2011-12-22 (木) 10:30:42)
命題
以下のようなテーブルがある。
id | dt | num ----+------------+----- a | 2011-04-01 | 1 a | 2011-02-01 | 2 a | 2011-06-01 | 3 b | 2011-02-01 | 2 c | 2011-01-01 | 4 c | 2011-02-01 | 3
この時、idに注目して、あるidのレコードの内、dtが一番早いレコードのnumを抽出したい。
解答
SELECT id, (SELECT num FROM t1 WHERE dt <= MIN(x.dt) AND id = x.id) AS num FROM t1 x GROUP BY id ORDER BY id;
id | num ----+----- a | 2 b | 2 c | 4