Back to home page

OSCL-LXR

 
 

    


0001 -- This is a new query in TPCDS v2.7
0002 with results as (
0003     select
0004         i_category,
0005         i_class,
0006         i_brand,
0007         i_product_name,
0008         d_year,
0009         d_qoy,
0010         d_moy,
0011         s_store_id,
0012         sum(coalesce(ss_sales_price * ss_quantity, 0)) sumsales
0013     from
0014       store_sales, date_dim, store, item
0015     where
0016       ss_sold_date_sk=d_date_sk
0017         and ss_item_sk=i_item_sk
0018         and ss_store_sk = s_store_sk
0019         and d_month_seq between 1212 and 1212 + 11
0020     group by
0021       i_category,
0022       i_class,
0023       i_brand,
0024       i_product_name,
0025       d_year,
0026       d_qoy,
0027       d_moy,
0028       s_store_id),
0029 results_rollup as (
0030     select
0031       i_category,
0032       i_class,
0033       i_brand,
0034       i_product_name,
0035       d_year,
0036       d_qoy,
0037       d_moy,
0038       s_store_id,
0039       sumsales
0040     from
0041       results
0042     union all
0043     select
0044       i_category,
0045       i_class,
0046       i_brand,
0047       i_product_name,
0048       d_year,
0049       d_qoy,
0050       d_moy,
0051       null s_store_id,
0052       sum(sumsales) sumsales
0053     from
0054       results
0055     group by
0056       i_category,
0057       i_class,
0058       i_brand,
0059       i_product_name,
0060       d_year,
0061       d_qoy,
0062       d_moy
0063     union all
0064     select
0065       i_category,
0066       i_class,
0067       i_brand,
0068       i_product_name,
0069       d_year,
0070       d_qoy,
0071       null d_moy,
0072       null s_store_id,
0073       sum(sumsales) sumsales
0074     from
0075       results
0076     group by
0077       i_category,
0078       i_class,
0079       i_brand,
0080       i_product_name,
0081       d_year,
0082       d_qoy
0083     union all
0084     select
0085       i_category,
0086       i_class,
0087       i_brand,
0088       i_product_name,
0089       d_year,
0090       null d_qoy,
0091       null d_moy,
0092       null s_store_id,
0093       sum(sumsales) sumsales
0094     from
0095       results
0096     group by
0097       i_category,
0098       i_class,
0099       i_brand,
0100       i_product_name,
0101       d_year
0102     union all
0103     select
0104       i_category,
0105       i_class,
0106       i_brand,
0107       i_product_name,
0108       null d_year,
0109       null d_qoy,
0110       null d_moy,
0111       null s_store_id,
0112       sum(sumsales) sumsales
0113   from
0114     results
0115   group by
0116     i_category,
0117     i_class,
0118     i_brand,
0119     i_product_name
0120   union all
0121   select
0122     i_category,
0123     i_class,
0124     i_brand,
0125     null i_product_name,
0126     null d_year,
0127     null d_qoy,
0128     null d_moy,
0129     null s_store_id,
0130     sum(sumsales) sumsales
0131   from
0132     results
0133   group by
0134     i_category,
0135     i_class,
0136     i_brand
0137   union all
0138   select
0139     i_category,
0140     i_class,
0141     null i_brand,
0142     null i_product_name,
0143     null d_year,
0144     null d_qoy,
0145     null d_moy,
0146     null s_store_id,
0147     sum(sumsales) sumsales
0148   from
0149     results
0150   group by
0151     i_category,
0152     i_class
0153   union all
0154   select
0155     i_category,
0156     null i_class,
0157     null i_brand,
0158     null i_product_name,
0159     null d_year,
0160     null d_qoy,
0161     null d_moy,
0162     null s_store_id,
0163     sum(sumsales) sumsales
0164   from results
0165   group by
0166     i_category
0167   union all
0168   select
0169     null i_category,
0170     null i_class,
0171     null i_brand,
0172     null i_product_name,
0173     null d_year,
0174     null d_qoy,
0175     null d_moy,
0176     null s_store_id,
0177     sum(sumsales) sumsales
0178   from
0179     results)
0180 select
0181   *
0182 from (
0183     select
0184       i_category,
0185       i_class,
0186       i_brand,
0187       i_product_name,
0188       d_year,
0189       d_qoy,
0190       d_moy,
0191       s_store_id,
0192       sumsales,
0193       rank() over (partition by i_category order by sumsales desc) rk
0194     from results_rollup) dw2
0195 where
0196   rk <= 100
0197 order by
0198   i_category,
0199   i_class,
0200   i_brand,
0201   i_product_name,
0202   d_year,
0203   d_qoy,
0204   d_moy,
0205   s_store_id,
0206   sumsales,
0207   rk
0208 limit 100