q67.sql 885 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. SELECT *
  2. FROM
  3. (SELECT
  4. i_category,
  5. i_class,
  6. i_brand,
  7. i_product_name,
  8. d_year,
  9. d_qoy,
  10. d_moy,
  11. s_store_id,
  12. sumsales,
  13. rank()
  14. OVER (PARTITION BY i_category
  15. ORDER BY sumsales DESC) rk
  16. FROM
  17. (SELECT
  18. i_category,
  19. i_class,
  20. i_brand,
  21. i_product_name,
  22. d_year,
  23. d_qoy,
  24. d_moy,
  25. s_store_id,
  26. sum(coalesce(ss_sales_price * ss_quantity, 0)) sumsales
  27. FROM store_sales, date_dim, store, item
  28. WHERE ss_sold_date_sk = d_date_sk
  29. AND ss_item_sk = i_item_sk
  30. AND ss_store_sk = s_store_sk
  31. AND d_month_seq BETWEEN 1200 AND 1200 + 11
  32. GROUP BY ROLLUP (i_category, i_class, i_brand, i_product_name, d_year, d_qoy,
  33. d_moy, s_store_id)) dw1) dw2
  34. WHERE rk <= 100
  35. ORDER BY
  36. i_category, i_class, i_brand, i_product_name, d_year,
  37. d_qoy, d_moy, s_store_id, sumsales, rk
  38. LIMIT 100