0

product私は2つの列を含むという名前のテーブルを持っています:

id  name
1   p1
2   p2
3   p1
4   p3
5   p4

次のクエリを実行します。

SELECT DISTINCT id, name FROM product;

その結果、PostgreSQL から次の出力が得られます。

id  name
1   p1
2   p2
3   p1
4   p3
5   p4

フィールド内の値の重複を避けたいnameので、目的の出力は次のようになります。

1   p1
2   p2
4   p3
5   p4

これを達成するにはどうすればよいですか?

4

3 に答える 3

3

PostgreSQL には、これをかなり効率的に行うための構文があります。

select   distinct on (name)
         id,
         name
from     product
order by name,
         id;

名前順は必須です。

http://www.postgresql.org/docs/9.0/static/sql-select.html#SQL-DISTINCT

于 2013-10-17T10:21:09.383 に答える