123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- --!syntax_pg
- --TPC-DS Q5
- -- start query 1 in stream 0 using template ../query_templates/query5.tpl
- with ssr as
- (select s_store_id,
- sum(sales_price) as sales,
- sum(profit) as profit,
- sum(return_amt) as returns,
- sum(net_loss) as profit_loss
- from
- ( select ss_store_sk as store_sk,
- ss_sold_date_sk as date_sk,
- ss_ext_sales_price as sales_price,
- ss_net_profit as profit,
- cast(0 as decimal(7,2)) as return_amt,
- cast(0 as decimal(7,2)) as net_loss
- from plato.store_sales
- union all
- select sr_store_sk as store_sk,
- sr_returned_date_sk as date_sk,
- cast(0 as decimal(7,2)) as sales_price,
- cast(0 as decimal(7,2)) as profit,
- sr_return_amt as return_amt,
- sr_net_loss as net_loss
- from plato.store_returns
- ) salesreturns,
- plato.date_dim,
- plato.store
- where date_sk = d_date_sk
- and d_date between cast('1998-08-04' as date)
- and (cast('1998-08-04' as date) + interval '14' day)::date
- and store_sk = s_store_sk
- group by s_store_id)
- ,
- csr as
- (select cp_catalog_page_id,
- sum(sales_price) as sales,
- sum(profit) as profit,
- sum(return_amt) as returns,
- sum(net_loss) as profit_loss
- from
- ( select cs_catalog_page_sk as page_sk,
- cs_sold_date_sk as date_sk,
- cs_ext_sales_price as sales_price,
- cs_net_profit as profit,
- cast(0 as decimal(7,2)) as return_amt,
- cast(0 as decimal(7,2)) as net_loss
- from plato.catalog_sales
- union all
- select cr_catalog_page_sk as page_sk,
- cr_returned_date_sk as date_sk,
- cast(0 as decimal(7,2)) as sales_price,
- cast(0 as decimal(7,2)) as profit,
- cr_return_amount as return_amt,
- cr_net_loss as net_loss
- from plato.catalog_returns
- ) salesreturns,
- plato.date_dim,
- plato.catalog_page
- where date_sk = d_date_sk
- and d_date between cast('1998-08-04' as date)
- and (cast('1998-08-04' as date) + interval '14' day)::date
- and page_sk = cp_catalog_page_sk
- group by cp_catalog_page_id)
- ,
- wsr as
- (select web_site_id,
- sum(sales_price) as sales,
- sum(profit) as profit,
- sum(return_amt) as returns,
- sum(net_loss) as profit_loss
- from
- ( select ws_web_site_sk as wsr_web_site_sk,
- ws_sold_date_sk as date_sk,
- ws_ext_sales_price as sales_price,
- ws_net_profit as profit,
- cast(0 as decimal(7,2)) as return_amt,
- cast(0 as decimal(7,2)) as net_loss
- from plato.web_sales
- union all
- select ws_web_site_sk as wsr_web_site_sk,
- wr_returned_date_sk as date_sk,
- cast(0 as decimal(7,2)) as sales_price,
- cast(0 as decimal(7,2)) as profit,
- wr_return_amt as return_amt,
- wr_net_loss as net_loss
- from plato.web_returns left outer join plato.web_sales on
- ( wr_item_sk = ws_item_sk
- and wr_order_number = ws_order_number)
- ) salesreturns,
- plato.date_dim,
- plato.web_site
- where date_sk = d_date_sk
- and d_date between cast('1998-08-04' as date)
- and (cast('1998-08-04' as date) + interval '14' day)::date
- and wsr_web_site_sk = web_site_sk
- group by web_site_id)
- select channel
- , id
- , sum(sales) as sales
- , sum(returns) as returns
- , sum(profit) as profit
- from
- (select 'store channel' as channel
- , 'store' || s_store_id as id
- , sales
- , returns
- , (profit - profit_loss) as profit
- from ssr
- union all
- select 'catalog channel' as channel
- , 'catalog_page' || cp_catalog_page_id as id
- , sales
- , returns
- , (profit - profit_loss) as profit
- from csr
- union all
- select 'web channel' as channel
- , 'web_site' || web_site_id as id
- , sales
- , returns
- , (profit - profit_loss) as profit
- from wsr
- ) x
- group by rollup (channel, id)
- order by channel
- ,id
- limit 100;
- -- end query 1 in stream 0 using template ../query_templates/query5.tpl
|