数据仓库服务 GaussDB(DWS)-TPC-DS测试集:SQL5

时间:2025-02-12 14:55:03

SQL5

  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99100101102103104105106107108109110111112113114115116117118119120121122123124125
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 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 store_returns   ) salesreturns,     date_dim,     store where date_sk = d_date_sk       and d_date between cast('2002-08-05' as date)                   and (cast('2002-08-05' as date) +  14 )       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 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 catalog_returns   ) salesreturns,     date_dim,     catalog_page where date_sk = d_date_sk       and d_date between cast('2002-08-05' as date)                  and (cast('2002-08-05' as date) +  14 )       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 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 web_returns left outer join web_sales on         ( wr_item_sk = ws_item_sk           and wr_order_number = ws_order_number)   ) salesreturns,     date_dim,     web_site where date_sk = d_date_sk       and d_date between cast('2002-08-05' as date)                  and (cast('2002-08-05' as date) +  14 )       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;
support.huaweicloud.com/pwp-dws/dws_13_00041.html