q83.sql 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. WITH sr_items AS
  2. (SELECT
  3. i_item_id item_id,
  4. sum(sr_return_quantity) sr_item_qty
  5. FROM store_returns, item, date_dim
  6. WHERE sr_item_sk = i_item_sk
  7. AND d_date IN (SELECT d_date
  8. FROM date_dim
  9. WHERE d_week_seq IN
  10. (SELECT d_week_seq
  11. FROM date_dim
  12. WHERE d_date IN ('2000-06-30', '2000-09-27', '2000-11-17')))
  13. AND sr_returned_date_sk = d_date_sk
  14. GROUP BY i_item_id),
  15. cr_items AS
  16. (SELECT
  17. i_item_id item_id,
  18. sum(cr_return_quantity) cr_item_qty
  19. FROM catalog_returns, item, date_dim
  20. WHERE cr_item_sk = i_item_sk
  21. AND d_date IN (SELECT d_date
  22. FROM date_dim
  23. WHERE d_week_seq IN
  24. (SELECT d_week_seq
  25. FROM date_dim
  26. WHERE d_date IN ('2000-06-30', '2000-09-27', '2000-11-17')))
  27. AND cr_returned_date_sk = d_date_sk
  28. GROUP BY i_item_id),
  29. wr_items AS
  30. (SELECT
  31. i_item_id item_id,
  32. sum(wr_return_quantity) wr_item_qty
  33. FROM web_returns, item, date_dim
  34. WHERE wr_item_sk = i_item_sk AND d_date IN
  35. (SELECT d_date
  36. FROM date_dim
  37. WHERE d_week_seq IN
  38. (SELECT d_week_seq
  39. FROM date_dim
  40. WHERE d_date IN ('2000-06-30', '2000-09-27', '2000-11-17')))
  41. AND wr_returned_date_sk = d_date_sk
  42. GROUP BY i_item_id)
  43. SELECT
  44. sr_items.item_id,
  45. sr_item_qty,
  46. sr_item_qty / (sr_item_qty + cr_item_qty + wr_item_qty) / 3.0 * 100 sr_dev,
  47. cr_item_qty,
  48. cr_item_qty / (sr_item_qty + cr_item_qty + wr_item_qty) / 3.0 * 100 cr_dev,
  49. wr_item_qty,
  50. wr_item_qty / (sr_item_qty + cr_item_qty + wr_item_qty) / 3.0 * 100 wr_dev,
  51. (sr_item_qty + cr_item_qty + wr_item_qty) / 3.0 average
  52. FROM sr_items, cr_items, wr_items
  53. WHERE sr_items.item_id = cr_items.item_id
  54. AND sr_items.item_id = wr_items.item_id
  55. ORDER BY sr_items.item_id, sr_item_qty
  56. LIMIT 100