主キーを複数持つ下記の様なテーブルに対して処理を行いたいと考えています。
key_aとkey_bが主キーです。
key_a | key_b | order_by |
---|---|---|
c | b | 1 |
a | a | 2 |
a | b | 3 |
b | b | 4 |
このテーブルに対してkey_bの重複を除外し、
かつorder_by列の昇順にしてkey_b列の結果を得たいと考えています。
(以下の様な結果です)
key_b | order_by |
---|---|
b | 1 |
a | 2 |
しかし、
SQL
1SELECT DISTINCT key_b FROM test_table
とすると、order_by列の昇順にはならず
SQL
1SELECT DISTINCT key_b FROM test_table ORDER BY order_by
とすると、エラーになり、
SQL
1SELECT DISTINCT key_b, order_by FROM test_table ORDER BY order_by
とすると重複が除外されません。
取得したいのは、key_bの値であり、order_by列の結果はどちらでも良いです。
DBはSQLであり、テーブルは、
SQL
1create table public.test_table ( 2 key_a character varying(2) not null 3 , key_b character varying(2) not null 4 , order_by smallint not null 5 , primary key (key_a, key_b) 6);
のように作成しています。
どの様に記載すればよいか教えて教えてください。
使用しているSQLはPostgreSQL 11です。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/11/21 04:28 編集