q36.sql 778 B

1234567891011121314151617181920212223242526
  1. SELECT
  2. sum(ss_net_profit) / sum(ss_ext_sales_price) AS gross_margin,
  3. i_category,
  4. i_class,
  5. grouping(i_category) + grouping(i_class) AS lochierarchy,
  6. rank()
  7. OVER (
  8. PARTITION BY grouping(i_category) + grouping(i_class),
  9. CASE WHEN grouping(i_class) = 0
  10. THEN i_category END
  11. ORDER BY sum(ss_net_profit) / sum(ss_ext_sales_price) ASC) AS rank_within_parent
  12. FROM
  13. store_sales, date_dim d1, item, store
  14. WHERE
  15. d1.d_year = 2001
  16. AND d1.d_date_sk = ss_sold_date_sk
  17. AND i_item_sk = ss_item_sk
  18. AND s_store_sk = ss_store_sk
  19. AND s_state IN ('TN', 'TN', 'TN', 'TN', 'TN', 'TN', 'TN', 'TN')
  20. GROUP BY ROLLUP (i_category, i_class)
  21. ORDER BY
  22. lochierarchy DESC
  23. , CASE WHEN lochierarchy = 0
  24. THEN i_category END
  25. , rank_within_parent
  26. LIMIT 100