q40.sql 919 B

12345678910111213141516171819202122232425
  1. SELECT
  2. w_state,
  3. i_item_id,
  4. sum(CASE WHEN (cast(d_date AS DATE) < cast('2000-03-11' AS DATE))
  5. THEN cs_sales_price - coalesce(cr_refunded_cash, 0)
  6. ELSE 0 END) AS sales_before,
  7. sum(CASE WHEN (cast(d_date AS DATE) >= cast('2000-03-11' AS DATE))
  8. THEN cs_sales_price - coalesce(cr_refunded_cash, 0)
  9. ELSE 0 END) AS sales_after
  10. FROM
  11. catalog_sales
  12. LEFT OUTER JOIN catalog_returns ON
  13. (cs_order_number = cr_order_number
  14. AND cs_item_sk = cr_item_sk)
  15. , warehouse, item, date_dim
  16. WHERE
  17. i_current_price BETWEEN 0.99 AND 1.49
  18. AND i_item_sk = cs_item_sk
  19. AND cs_warehouse_sk = w_warehouse_sk
  20. AND cs_sold_date_sk = d_date_sk
  21. AND d_date BETWEEN (cast('2000-03-11' AS DATE) - INTERVAL 30 days)
  22. AND (cast('2000-03-11' AS DATE) + INTERVAL 30 days)
  23. GROUP BY w_state, i_item_id
  24. ORDER BY w_state, i_item_id
  25. LIMIT 100