下記テーブルでnameがnullでないidを重複なく取得したいです。
(nameが1件でもnullの場合、そのidは取得しない)
table_a(PKなし 各カラムのデータ型はtext)
id | name |
---|---|
1 | ichiro |
1 | jiro |
2 | eigyou |
2 | saburo |
下記SQLでも取得できるのですが、サブクエリを使わず取得する方法(group byなど)ありますでしょうか?
また、サブクエリを使ったとしても下記以外の取得方法はありますでしょうか?
select distinct id from table_a
where id not in (select id from table_a where name is null);
環境
PostgreSQL(9.5.13)
想定のDBとバージョンを提示してください。
あと、テーブル定義をCREATE TABLEで、サンプルデータをINSERTで提示してください。
ちなみに
>サブクエリを使ったとしても下記以外の取得方法はありますでしょうか?
大抵のゴールに向かう道は1つではないので「幾らでもある」とだけ。
>大抵のゴールに向かう道は1つではないので「幾らでもある」とだけ。
わかってます。その「いくらでもある」を出していただきたいです。
>あと、テーブル定義をCREATE TABLEで、サンプルデータをINSERTで提示してください。
情報追加しました。インサートはテーブルを見た通りなので割愛します。
横から失礼。一目瞭然であっても、「テーブル定義をCREATE TABLEで、サンプルデータをINSERTで提示してください」というのは、回答者が同じデータを作って再現、確認するために提示するのですよ。回答者(複数)が回答の手間を省くためにご協力ください。