query58.sql 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. select ss_items.item_id
  2. ,ss_item_rev
  3. ,ss_item_rev/(ss_item_rev+cs_item_rev+ws_item_rev)/3 * 100 ss_dev
  4. ,cs_item_rev
  5. ,cs_item_rev/(ss_item_rev+cs_item_rev+ws_item_rev)/3 * 100 cs_dev
  6. ,ws_item_rev
  7. ,ws_item_rev/(ss_item_rev+cs_item_rev+ws_item_rev)/3 * 100 ws_dev
  8. ,(ss_item_rev+cs_item_rev+ws_item_rev)/3 average
  9. FROM
  10. ( select i_item_id item_id ,sum(ss_ext_sales_price) as ss_item_rev
  11. from store_sales
  12. JOIN item ON store_sales.ss_item_sk = item.i_item_sk
  13. JOIN date_dim ON store_sales.ss_sold_date_sk = date_dim.d_date_sk
  14. JOIN (select d1.d_date
  15. from date_dim d1 JOIN date_dim d2 ON d1.d_week_seq = d2.d_week_seq
  16. where d2.d_date = '1998-08-04') sub ON date_dim.d_date = sub.d_date
  17. where ss_sold_date between '1998-08-04' and '1998-08-10'
  18. group by i_item_id ) ss_items
  19. JOIN
  20. ( select i_item_id item_id ,sum(cs_ext_sales_price) as cs_item_rev
  21. from catalog_sales
  22. JOIN item ON catalog_sales.cs_item_sk = item.i_item_sk
  23. JOIN date_dim ON catalog_sales.cs_sold_date_sk = date_dim.d_date_sk
  24. JOIN (select d1.d_date
  25. from date_dim d1 JOIN date_dim d2 ON d1.d_week_seq = d2.d_week_seq
  26. where d2.d_date = '1998-08-04') sub ON date_dim.d_date = sub.d_date
  27. where cs_sold_date between '1998-08-04' and '1998-08-10'
  28. group by i_item_id ) cs_items
  29. ON ss_items.item_id=cs_items.item_id
  30. JOIN
  31. ( select i_item_id item_id ,sum(ws_ext_sales_price) as ws_item_rev
  32. from web_sales
  33. JOIN item ON web_sales.ws_item_sk = item.i_item_sk
  34. JOIN date_dim ON web_sales.ws_sold_date_sk = date_dim.d_date_sk
  35. JOIN (select d1.d_date
  36. from date_dim d1 JOIN date_dim d2 ON d1.d_week_seq = d2.d_week_seq
  37. where d2.d_date = '1998-08-04') sub ON date_dim.d_date = sub.d_date
  38. where ws_sold_date between '1998-08-04' and '1998-08-10'
  39. group by i_item_id ) ws_items
  40. ON ss_items.item_id=ws_items.item_id
  41. where
  42. ss_item_rev between 0.9 * cs_item_rev and 1.1 * cs_item_rev
  43. and ss_item_rev between 0.9 * ws_item_rev and 1.1 * ws_item_rev
  44. and cs_item_rev between 0.9 * ss_item_rev and 1.1 * ss_item_rev
  45. and cs_item_rev between 0.9 * ws_item_rev and 1.1 * ws_item_rev
  46. and ws_item_rev between 0.9 * ss_item_rev and 1.1 * ss_item_rev
  47. and ws_item_rev between 0.9 * cs_item_rev and 1.1 * cs_item_rev
  48. order by item_id ,ss_item_rev
  49. limit 100;