| SELECT |
| sum(ws_net_paid) AS total_sum, |
| i_category, |
| i_class, |
| grouping(i_category) + grouping(i_class) AS lochierarchy, |
| rank() |
| OVER ( |
| PARTITION BY grouping(i_category) + grouping(i_class), |
| CASE WHEN grouping(i_class) = 0 |
| THEN i_category END |
| ORDER BY sum(ws_net_paid) DESC) AS rank_within_parent |
| FROM |
| web_sales, date_dim d1, item |
| WHERE |
| d1.d_month_seq BETWEEN 1200 AND 1200 + 11 |
| AND d1.d_date_sk = ws_sold_date_sk |
| AND i_item_sk = ws_item_sk |
| GROUP BY ROLLUP (i_category, i_class) |
| --ORDER BY |
| -- lochierarchy DESC, |
| -- CASE WHEN lochierarchy = 0 |
| -- THEN i_category END, |
| -- rank_within_parent |
| --LIMIT 100 |