q21.sql 953 B

12345678910111213141516171819202122232425
  1. SELECT *
  2. FROM (
  3. SELECT
  4. w_warehouse_name,
  5. i_item_id,
  6. sum(CASE WHEN (cast(d_date AS DATE) < cast('2000-03-11' AS DATE))
  7. THEN inv_quantity_on_hand
  8. ELSE 0 END) AS inv_before,
  9. sum(CASE WHEN (cast(d_date AS DATE) >= cast('2000-03-11' AS DATE))
  10. THEN inv_quantity_on_hand
  11. ELSE 0 END) AS inv_after
  12. FROM inventory, warehouse, item, date_dim
  13. WHERE i_current_price BETWEEN 0.99 AND 1.49
  14. AND i_item_sk = inv_item_sk
  15. AND inv_warehouse_sk = w_warehouse_sk
  16. AND inv_date_sk = d_date_sk
  17. AND d_date BETWEEN (cast('2000-03-11' AS DATE) - INTERVAL 30 days)
  18. AND (cast('2000-03-11' AS DATE) + INTERVAL 30 days)
  19. GROUP BY w_warehouse_name, i_item_id) x
  20. WHERE (CASE WHEN inv_before > 0
  21. THEN inv_after / inv_before
  22. ELSE NULL
  23. END) BETWEEN 2.0 / 3.0 AND 3.0 / 2.0
  24. ORDER BY w_warehouse_name, i_item_id
  25. LIMIT 100