q83.sql 2.2 KB

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