query51.sql 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. -- start query 1 in stream 0 using template query51.tpl and seed 1819994127
  2. WITH web_v1 as (
  3. select
  4. ws_item_sk item_sk, d_date,
  5. sum(sum(ws_sales_price))
  6. over (partition by ws_item_sk order by d_date rows between unbounded preceding and current row) cume_sales
  7. from web_sales
  8. ,date_dim
  9. where ws_sold_date_sk=d_date_sk
  10. and d_month_seq between 1214 and 1214+11
  11. and ws_item_sk is not NULL
  12. group by ws_item_sk, d_date),
  13. store_v1 as (
  14. select
  15. ss_item_sk item_sk, d_date,
  16. sum(sum(ss_sales_price))
  17. over (partition by ss_item_sk order by d_date rows between unbounded preceding and current row) cume_sales
  18. from store_sales
  19. ,date_dim
  20. where ss_sold_date_sk=d_date_sk
  21. and d_month_seq between 1214 and 1214+11
  22. and ss_item_sk is not NULL
  23. group by ss_item_sk, d_date)
  24. select *
  25. from (select item_sk
  26. ,d_date
  27. ,web_sales
  28. ,store_sales
  29. ,max(web_sales)
  30. over (partition by item_sk order by d_date rows between unbounded preceding and current row) web_cumulative
  31. ,max(store_sales)
  32. over (partition by item_sk order by d_date rows between unbounded preceding and current row) store_cumulative
  33. from (select case when web.item_sk is not null then web.item_sk else store.item_sk end item_sk
  34. ,case when web.d_date is not null then web.d_date else store.d_date end d_date
  35. ,web.cume_sales web_sales
  36. ,store.cume_sales store_sales
  37. from web_v1 web full outer join store_v1 store on (web.item_sk = store.item_sk
  38. and web.d_date = store.d_date)
  39. )x )y
  40. where web_cumulative > store_cumulative
  41. order by item_sk
  42. ,d_date
  43. limit 100;
  44. -- end query 1 in stream 0 using template query51.tpl