ある項目が初出した行を求める2命題以下のようなテーブルがある。 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 |
|