Skip to content

PostgreSQLはDISTINCT ON (params)を使える

PostgreSQLの拡張で、 SELECT DISTINCT ON (params ...) fields... がある。この構文は params の中で一意な行となるように抽出される。このときfields に該当する行が複数ある場合、最初の行が選択される。

なので、DISTINCT しているんだから多分はそうなると思うが、fields が複数になる可能性があるなら ORDER BY で順序を決めておくほうが良い。