query83.sql 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. with sr_items as
  2. (select i_item_id item_id,
  3. sum(sr_return_quantity) sr_item_qty
  4. from store_returns,
  5. item,
  6. date_dim
  7. where sr_item_sk = i_item_sk
  8. and d_date in
  9. (select d_date
  10. from date_dim
  11. where d_week_seq in
  12. (select d_week_seq
  13. from date_dim
  14. where d_date in ('1998-01-02','1998-10-15','1998-11-10')))
  15. and sr_returned_date_sk = d_date_sk
  16. group by i_item_id),
  17. cr_items as
  18. (select i_item_id item_id,
  19. sum(cr_return_quantity) cr_item_qty
  20. from catalog_returns,
  21. item,
  22. date_dim
  23. where cr_item_sk = i_item_sk
  24. and d_date in
  25. (select d_date
  26. from date_dim
  27. where d_week_seq in
  28. (select d_week_seq
  29. from date_dim
  30. where d_date in ('1998-01-02','1998-10-15','1998-11-10')))
  31. and cr_returned_date_sk = d_date_sk
  32. group by i_item_id),
  33. wr_items as
  34. (select i_item_id item_id,
  35. sum(wr_return_quantity) wr_item_qty
  36. from web_returns,
  37. item,
  38. date_dim
  39. where wr_item_sk = i_item_sk
  40. and d_date in
  41. (select d_date
  42. from date_dim
  43. where d_week_seq in
  44. (select d_week_seq
  45. from date_dim
  46. where d_date in ('1998-01-02','1998-10-15','1998-11-10')))
  47. and wr_returned_date_sk = d_date_sk
  48. group by i_item_id)
  49. select sr_items.item_id
  50. ,sr_item_qty
  51. ,sr_item_qty/(sr_item_qty+cr_item_qty+wr_item_qty)/3.0 * 100 sr_dev
  52. ,cr_item_qty
  53. ,cr_item_qty/(sr_item_qty+cr_item_qty+wr_item_qty)/3.0 * 100 cr_dev
  54. ,wr_item_qty
  55. ,wr_item_qty/(sr_item_qty+cr_item_qty+wr_item_qty)/3.0 * 100 wr_dev
  56. ,(sr_item_qty+cr_item_qty+wr_item_qty)/3.0 average
  57. from sr_items
  58. ,cr_items
  59. ,wr_items
  60. where sr_items.item_id=cr_items.item_id
  61. and sr_items.item_id=wr_items.item_id
  62. order by sr_items.item_id
  63. ,sr_item_qty
  64. limit 100;