blob: fe015ae754c8e3194c5df31a0d2126f8318b790e [file] [log] [blame]
====
---- QUERY: TPCDS-Q36
with results as
(select
sum(ss_net_profit) as ss_net_profit, sum(ss_ext_sales_price) as ss_ext_sales_price,
sum(ss_net_profit)/sum(ss_ext_sales_price) as gross_margin
,i_category
,i_class
,0 as g_category, 0 as g_class
from
store_sales
,date_dim d1
,item
,store
where
d1.d_year = 2001
and d1.d_date_sk = ss_sold_date_sk
and i_item_sk = ss_item_sk
and s_store_sk = ss_store_sk
and s_state in ('AL','SD','TN','SD',
'SD','SD','TN','SD')
group by i_category,i_class)
,
results_rollup as
(select gross_margin ,i_category ,i_class,0 as t_category, 0 as t_class, 0 as lochierarchy from results
union
select sum(ss_net_profit)/sum(ss_ext_sales_price) as gross_margin,
i_category, NULL AS i_class, 0 as t_category, 1 as t_class, 1 as lochierarchy from results group by i_category
union
select sum(ss_net_profit)/sum(ss_ext_sales_price) as gross_margin,
NULL AS i_category ,NULL AS i_class, 1 as t_category, 1 as t_class, 2 as lochierarchy from results)
select
gross_margin ,i_category ,i_class, lochierarchy,rank() over (
partition by lochierarchy, case when t_class = 0 then i_category end
order by gross_margin asc) as rank_within_parent
from results_rollup
order by
lochierarchy desc
,case when lochierarchy = 0 then i_category end
,rank_within_parent
limit 100;
---- RESULTS
---- TYPES
INT, INT, STRING, DECIMAL
====