初めて R を学んだときに、繰り返しの多いタスクを処理する際に for ループの威力を発見しました。現在、同じロジックを SQL に適用したいと考えていますが、psql の基礎を理解するのに苦労しています。私はPostgresで作業していますが、ANSIソリューションは大歓迎です。
問題はこれです。名前のリストがあります。名前ごとに、レポートを生成したいと思います。クエリを実行しているテーブルの 1 つが非常に巨大であるため、すべての名前に対してスクリプトを実行してから、名前だけをフィルター処理することはできません。そのため、次のようなことを行いたいと考えています。
for(i in list){
select distinct name, key
into temp table stuff from table1 where name = i
select case when x.date is null then y.date else x.date end date
, widgets
, troll
, cookie
, googol
, bite
, clicks
into temp table junk2
from (
select substring(datetime,1,10) as date
, count(*) as bite
, count(distinct cookie) as cookie
, count(distinct troll) as troll
from table2
where order_key in (select key from stuff)
group by substring(datetime,1,10)
order by substring(datetime,1,10)
) x
full join (
select substring(datetime,1,10) as date
, count(distinct widgets) as widgets
, count(distinct googol) as googol
, count(*) as clicks
from table3
where order_key in (select key from stuff)
group by substring(datetime,1,10)
order by substring(datetime,1,10)
) y
on x.date = y.date
COPY junk2 to name_print(i) --psuedocode
discard all
}