2
我有以下查詢,我將打電話QUERY1:Netezza公司SQL For循環
with a as (
select customer_key as cust,
sum(sales)*1.0/4 as avg_sales
sum(returns)*1.0/4 as avg_return
count(distinct order_key)*1.04 as avg_num_orders
from orders_table
where purch_year between 2011 and 2014
group by cust
order by random()
),
b as (
select *
from a
where avg_num_orders > .25
limit 100000
)
select case
when avg_num_orders <= 1 then 'Low'
when avg_num_orders between 1 and 4 then 'Medium'
when avg_num_orders > 4 then 'High'
end as estimated_frequency,
count(cust) as num_purchasers_year,
sum(avg_num_orders) as num_orders_year,
avg(avg_num_orders) as avg_num_order_year,
sum(avg_sales) as avg_sales_year,
sum(avg_total_return) as avg_return_year,
avg_sales_year/num_orders_year as AOV,
avg_sales_year/num_purchasers_year as ACS,
stddev(avg_sales) as sales_stddev
from b
where avg_num_orders > .25
group by estimated_frequency
order by estimated_frequency;
我想要寫代碼,做以下(這是不行的,我所提供的僞代碼)。我無權創建程序。
Create table temp1
for i in 1..100 loop
insert into temp1 the result of QUERY1
end loop
然後
select estimated_frequency,
avg(acs),
avg(sales_stddev)
from temp1
group by estimated_frequency
從本質上講,我想運行QUERY1 100次,並將結果存儲在一個名爲temp1中的表,然後計算在temp1中有一些平均數,一旦我感到一切都成定局。
謝謝您的幫助