Back to home page

OSCL-LXR

 
 

    


0001 -- This is a new query in TPCDS v2.7
0002 with results as (
0003     select
0004       sum(ss_net_profit) as ss_net_profit,
0005       sum(ss_ext_sales_price) as ss_ext_sales_price,
0006       sum(ss_net_profit)/sum(ss_ext_sales_price) as gross_margin,
0007       i_category,
0008       i_class,
0009       0 as g_category,
0010       0 as g_class
0011     from
0012       store_sales,
0013       date_dim d1,
0014       item,
0015       store
0016     where
0017       d1.d_year = 2001
0018         and d1.d_date_sk = ss_sold_date_sk
0019         and i_item_sk  = ss_item_sk
0020         and s_store_sk  = ss_store_sk
0021         and s_state in ('TN', 'TN', 'TN', 'TN', 'TN', 'TN', 'TN', 'TN')
0022     group by
0023       i_category,
0024       i_class),
0025  results_rollup as (
0026      select
0027        gross_margin,
0028        i_category,
0029        i_class,
0030        0 as t_category,
0031        0 as t_class,
0032        0 as lochierarchy
0033      from
0034        results
0035      union
0036      select
0037        sum(ss_net_profit) / sum(ss_ext_sales_price) as gross_margin,
0038        i_category, NULL AS i_class,
0039        0 as t_category,
0040        1 as t_class,
0041        1 as lochierarchy
0042      from
0043        results
0044      group by
0045        i_category
0046      union
0047      select
0048        sum(ss_net_profit) / sum(ss_ext_sales_price) as gross_margin,
0049        NULL AS i_category,
0050        NULL AS i_class,
0051        1 as t_category,
0052        1 as t_class,
0053        2 as lochierarchy
0054      from
0055        results)
0056 select
0057   gross_margin,
0058   i_category,
0059   i_class,
0060   lochierarchy,
0061   rank() over (
0062     partition by lochierarchy, case when t_class = 0 then i_category end
0063     order by gross_margin asc) as rank_within_parent
0064 from
0065   results_rollup
0066 order by
0067   lochierarchy desc,
0068   case when lochierarchy = 0 then i_category end,
0069   rank_within_parent
0070 limit 100