はじめに ある列の重複は削除した上で他の列も含めて取得したいなどのケースで便利なDISTINCT ONという構文がPostgreSQLには存在する。 この構文は標準SQLには存在しないので注意。 標準SQLの普通のDISTINCTは特定の列の重複のみ除外して他の列も取得ということはできず、重複除外に指定するか取得しないかしかできない。 この構文を使用しなければGROUP BYや副問合せを駆使しなければならないのでそれに比べるとかなり直感的に書くことができる。 下記のサンプルテーブルに対して使用していく。 postgres=# create table t1 (c1 int, c2 int); postgres=# insert into t1 values (1, 1), (1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 2), (2, 3); pos