私はapp_idが複数のレコードを持つ可能性のある以下のようなpostgresqlデータセットを持っています。 bool_flagがtrueの各app_idのすべてのレコードを選択する必要があり、app_idにbool_flagの値がtrueのレコードがない場合は、そのアプリケーションのfalse値を持つすべてのレコードを選択します。ここでフィールド値に基づいて特定のレコードセットを選択するPostgresql
は、利用可能なデータへのリンクが data-set
を設定し、これは私が事前のおかげで、探しています所望の出力です。それが「真」ですべての行を取得することにより開始し、記述の状態として
select t.*
from t
where t.bool_flag
union all
select t.*
from t
where not t.bool_flag and
not exists (select 1
from t t2
where t2.app_id = t.app_id and t2.bool_flag
);
これはプログラミングに役立つコミュニティですが、私たちがコードを書く場所ではありません。この本をよくお読みください。質問:https://codeblog.jonskeet.uk/2012/11/24/stack-overflow-question-checklist/ – Graham