q31.sql 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. --!syntax_pg
  2. --TPC-DS Q31
  3. -- start query 1 in stream 0 using template ../query_templates/query31.tpl
  4. with ss as
  5. (select ca_county,d_qoy, d_year,sum(ss_ext_sales_price) as store_sales
  6. from plato.store_sales,plato.date_dim,plato.customer_address
  7. where ss_sold_date_sk = d_date_sk
  8. and ss_addr_sk=ca_address_sk
  9. group by ca_county,d_qoy, d_year),
  10. ws as
  11. (select ca_county,d_qoy, d_year,sum(ws_ext_sales_price) as web_sales
  12. from plato.web_sales,plato.date_dim,plato.customer_address
  13. where ws_sold_date_sk = d_date_sk
  14. and ws_bill_addr_sk=ca_address_sk
  15. group by ca_county,d_qoy, d_year)
  16. select
  17. ss1.ca_county
  18. ,ss1.d_year
  19. ,ws2.web_sales/ws1.web_sales web_q1_q2_increase
  20. ,ss2.store_sales/ss1.store_sales store_q1_q2_increase
  21. ,ws3.web_sales/ws2.web_sales web_q2_q3_increase
  22. ,ss3.store_sales/ss2.store_sales store_q2_q3_increase
  23. from
  24. ss ss1
  25. ,ss ss2
  26. ,ss ss3
  27. ,ws ws1
  28. ,ws ws2
  29. ,ws ws3
  30. where
  31. ss1.d_qoy = 1
  32. and ss1.d_year = 2000
  33. and ss1.ca_county = ss2.ca_county
  34. and ss2.d_qoy = 2
  35. and ss2.d_year = 2000
  36. and ss2.ca_county = ss3.ca_county
  37. and ss3.d_qoy = 3
  38. and ss3.d_year = 2000
  39. and ss1.ca_county = ws1.ca_county
  40. and ws1.d_qoy = 1
  41. and ws1.d_year = 2000
  42. and ws1.ca_county = ws2.ca_county
  43. and ws2.d_qoy = 2
  44. and ws2.d_year = 2000
  45. and ws1.ca_county = ws3.ca_county
  46. and ws3.d_qoy = 3
  47. and ws3.d_year =2000
  48. and case when ws1.web_sales > 0::numeric then ws2.web_sales/ws1.web_sales else null::numeric end
  49. > case when ss1.store_sales > 0::numeric then ss2.store_sales/ss1.store_sales else null::numeric end
  50. and case when ws2.web_sales > 0::numeric then ws3.web_sales/ws2.web_sales else null::numeric end
  51. > case when ss2.store_sales > 0::numeric then ss3.store_sales/ss2.store_sales else null::numeric end
  52. order by ss1.d_year;
  53. -- end query 1 in stream 0 using template ../query_templates/query31.tpl