"where"ステートメントに関するわずかに異なる仕様のたびに、クエリを複数回実行しようとしています。 私は単一のクエリを書いて、各仕様を徐々に実行し、それぞれの出力をcsv.fileとして保存するようデータベースに依頼したいと考えています。 私はどのように起動するのか分かりません。異なる仕様のPosgreSQLクエリを実行して結果を保存する
次のように基本的なクエリは次のとおりです。
SELECT
select id,
count(DISTINCT (a.id, c.publn_id)) as count
from a
join b on a.appln_id=b.appln_id
join c on b.publn_id=c.cit_id
left outer join d on c.publn_id=d.publn_id
group by id
私は、以下の追加仕様(ここで、条件に加えて、必要な書類で選択し、グループ内での変更に注意してください)実行したい:
を1.
SELECT
select id, c.auth,
count(DISTINCT (a.id, c.publn_id)) as count
from a
join b on a.appln_id=b.appln_id
join c on b.publn_id=c.cit_id
left outer join d on c.publn_id=d.publn_id
where (c.auth='EP' or c.auth='US')
group by id, c.auth
2.
また3.
SELECT
select id, d.categ,
count(DISTINCT (a.id, c.publn_id)) as count
from a
join b on a.appln_id=b.appln_id
join c on b.publn_id=c.cit_id
left outer join d on c.publn_id=d.publn_id
where c.auth='EP'
and (d.categ='E')
group by id, d.categ
4.
SELECT
select id,
count(DISTINCT (a.id, c.publn_id)) as count
from a
join b on a.appln_id=b.appln_id
join c on b.publn_id=c.cit_id
left outer join d on c.publn_id=d.publn_id
where c.auth='EP'
and (d.categ!='Y' and d.categ!='X' and d.categ!='E')
group by id
、それぞれ仕様が異なる時間枠のために照会されます(が、私は今のところ出これらの条件を残します)。
すべての仕様をループして結果を自動的に保存する単一のクエリを指定したいとします。
'UNION ALL'はあなたが望むものでしょうか?おそらく 'FROM'やCTE(' WITH'クエリ)のサブクエリと組み合わせられていますか? –
ありがとうございます。「UNION ALL」がどのように役立つか、私は例を挙げることができますか?私はテンポラリテーブルを作成し、異なる条件で異なるSELECTSを指定することを考えています。しかし、異なる条件を含むループを持つ1つの基本SELECT文しか指定しないソリューションを探していました。私が得たいのは、各仕様のためのCSVファイルが1つあります。条件付きループでループを指定するには、where =(c.auth = 'EP'またはc.auth = 'US')、c.auth = 'EP' および( d.categ = 'X'またはd.categ = 'Y')...、基本クエリを使用してループを開始し(異なる条件を適用する)、後でファイルを保存します –