q66.sql 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  1. --!syntax_pg
  2. --TPC-DS Q66
  3. -- start query 1 in stream 0 using template ../query_templates/query66.tpl
  4. select
  5. w_warehouse_name
  6. ,w_warehouse_sq_ft
  7. ,w_city
  8. ,w_county
  9. ,w_state
  10. ,w_country
  11. ,ship_carriers
  12. ,year
  13. ,sum(jan_sales) as jan_sales
  14. ,sum(feb_sales) as feb_sales
  15. ,sum(mar_sales) as mar_sales
  16. ,sum(apr_sales) as apr_sales
  17. ,sum(may_sales) as may_sales
  18. ,sum(jun_sales) as jun_sales
  19. ,sum(jul_sales) as jul_sales
  20. ,sum(aug_sales) as aug_sales
  21. ,sum(sep_sales) as sep_sales
  22. ,sum(oct_sales) as oct_sales
  23. ,sum(nov_sales) as nov_sales
  24. ,sum(dec_sales) as dec_sales
  25. ,sum(jan_sales/w_warehouse_sq_ft::numeric) as jan_sales_per_sq_foot
  26. ,sum(feb_sales/w_warehouse_sq_ft::numeric) as feb_sales_per_sq_foot
  27. ,sum(mar_sales/w_warehouse_sq_ft::numeric) as mar_sales_per_sq_foot
  28. ,sum(apr_sales/w_warehouse_sq_ft::numeric) as apr_sales_per_sq_foot
  29. ,sum(may_sales/w_warehouse_sq_ft::numeric) as may_sales_per_sq_foot
  30. ,sum(jun_sales/w_warehouse_sq_ft::numeric) as jun_sales_per_sq_foot
  31. ,sum(jul_sales/w_warehouse_sq_ft::numeric) as jul_sales_per_sq_foot
  32. ,sum(aug_sales/w_warehouse_sq_ft::numeric) as aug_sales_per_sq_foot
  33. ,sum(sep_sales/w_warehouse_sq_ft::numeric) as sep_sales_per_sq_foot
  34. ,sum(oct_sales/w_warehouse_sq_ft::numeric) as oct_sales_per_sq_foot
  35. ,sum(nov_sales/w_warehouse_sq_ft::numeric) as nov_sales_per_sq_foot
  36. ,sum(dec_sales/w_warehouse_sq_ft::numeric) as dec_sales_per_sq_foot
  37. ,sum(jan_net) as jan_net
  38. ,sum(feb_net) as feb_net
  39. ,sum(mar_net) as mar_net
  40. ,sum(apr_net) as apr_net
  41. ,sum(may_net) as may_net
  42. ,sum(jun_net) as jun_net
  43. ,sum(jul_net) as jul_net
  44. ,sum(aug_net) as aug_net
  45. ,sum(sep_net) as sep_net
  46. ,sum(oct_net) as oct_net
  47. ,sum(nov_net) as nov_net
  48. ,sum(dec_net) as dec_net
  49. from (
  50. select
  51. w_warehouse_name
  52. ,w_warehouse_sq_ft
  53. ,w_city
  54. ,w_county
  55. ,w_state
  56. ,w_country
  57. ,'DIAMOND' || ',' || 'AIRBORNE' as ship_carriers
  58. ,d_year as year
  59. ,sum(case when d_moy = 1
  60. then ws_sales_price* ws_quantity::numeric else 0::numeric end) as jan_sales
  61. ,sum(case when d_moy = 2
  62. then ws_sales_price* ws_quantity::numeric else 0::numeric end) as feb_sales
  63. ,sum(case when d_moy = 3
  64. then ws_sales_price* ws_quantity::numeric else 0::numeric end) as mar_sales
  65. ,sum(case when d_moy = 4
  66. then ws_sales_price* ws_quantity::numeric else 0::numeric end) as apr_sales
  67. ,sum(case when d_moy = 5
  68. then ws_sales_price* ws_quantity::numeric else 0::numeric end) as may_sales
  69. ,sum(case when d_moy = 6
  70. then ws_sales_price* ws_quantity::numeric else 0::numeric end) as jun_sales
  71. ,sum(case when d_moy = 7
  72. then ws_sales_price* ws_quantity::numeric else 0::numeric end) as jul_sales
  73. ,sum(case when d_moy = 8
  74. then ws_sales_price* ws_quantity::numeric else 0::numeric end) as aug_sales
  75. ,sum(case when d_moy = 9
  76. then ws_sales_price* ws_quantity::numeric else 0::numeric end) as sep_sales
  77. ,sum(case when d_moy = 10
  78. then ws_sales_price* ws_quantity::numeric else 0::numeric end) as oct_sales
  79. ,sum(case when d_moy = 11
  80. then ws_sales_price* ws_quantity::numeric else 0::numeric end) as nov_sales
  81. ,sum(case when d_moy = 12
  82. then ws_sales_price* ws_quantity::numeric else 0::numeric end) as dec_sales
  83. ,sum(case when d_moy = 1
  84. then ws_net_paid_inc_tax * ws_quantity::numeric else 0::numeric end) as jan_net
  85. ,sum(case when d_moy = 2
  86. then ws_net_paid_inc_tax * ws_quantity::numeric else 0::numeric end) as feb_net
  87. ,sum(case when d_moy = 3
  88. then ws_net_paid_inc_tax * ws_quantity::numeric else 0::numeric end) as mar_net
  89. ,sum(case when d_moy = 4
  90. then ws_net_paid_inc_tax * ws_quantity::numeric else 0::numeric end) as apr_net
  91. ,sum(case when d_moy = 5
  92. then ws_net_paid_inc_tax * ws_quantity::numeric else 0::numeric end) as may_net
  93. ,sum(case when d_moy = 6
  94. then ws_net_paid_inc_tax * ws_quantity::numeric else 0::numeric end) as jun_net
  95. ,sum(case when d_moy = 7
  96. then ws_net_paid_inc_tax * ws_quantity::numeric else 0::numeric end) as jul_net
  97. ,sum(case when d_moy = 8
  98. then ws_net_paid_inc_tax * ws_quantity::numeric else 0::numeric end) as aug_net
  99. ,sum(case when d_moy = 9
  100. then ws_net_paid_inc_tax * ws_quantity::numeric else 0::numeric end) as sep_net
  101. ,sum(case when d_moy = 10
  102. then ws_net_paid_inc_tax * ws_quantity::numeric else 0::numeric end) as oct_net
  103. ,sum(case when d_moy = 11
  104. then ws_net_paid_inc_tax * ws_quantity::numeric else 0::numeric end) as nov_net
  105. ,sum(case when d_moy = 12
  106. then ws_net_paid_inc_tax * ws_quantity::numeric else 0::numeric end) as dec_net
  107. from
  108. plato.web_sales
  109. ,plato.warehouse
  110. ,plato.date_dim
  111. ,plato.time_dim
  112. ,plato.ship_mode
  113. where
  114. ws_warehouse_sk = w_warehouse_sk
  115. and ws_sold_date_sk = d_date_sk
  116. and ws_sold_time_sk = t_time_sk
  117. and ws_ship_mode_sk = sm_ship_mode_sk
  118. and d_year = 2002
  119. and t_time between 49530 and 49530+28800
  120. and sm_carrier in ('DIAMOND','AIRBORNE')
  121. group by
  122. w_warehouse_name
  123. ,w_warehouse_sq_ft
  124. ,w_city
  125. ,w_county
  126. ,w_state
  127. ,w_country
  128. ,d_year
  129. union all
  130. select
  131. w_warehouse_name
  132. ,w_warehouse_sq_ft
  133. ,w_city
  134. ,w_county
  135. ,w_state
  136. ,w_country
  137. ,'DIAMOND' || ',' || 'AIRBORNE' as ship_carriers
  138. ,d_year as year
  139. ,sum(case when d_moy = 1
  140. then cs_ext_sales_price* cs_quantity::numeric else 0::numeric end) as jan_sales
  141. ,sum(case when d_moy = 2
  142. then cs_ext_sales_price* cs_quantity::numeric else 0::numeric end) as feb_sales
  143. ,sum(case when d_moy = 3
  144. then cs_ext_sales_price* cs_quantity::numeric else 0::numeric end) as mar_sales
  145. ,sum(case when d_moy = 4
  146. then cs_ext_sales_price* cs_quantity::numeric else 0::numeric end) as apr_sales
  147. ,sum(case when d_moy = 5
  148. then cs_ext_sales_price* cs_quantity::numeric else 0::numeric end) as may_sales
  149. ,sum(case when d_moy = 6
  150. then cs_ext_sales_price* cs_quantity::numeric else 0::numeric end) as jun_sales
  151. ,sum(case when d_moy = 7
  152. then cs_ext_sales_price* cs_quantity::numeric else 0::numeric end) as jul_sales
  153. ,sum(case when d_moy = 8
  154. then cs_ext_sales_price* cs_quantity::numeric else 0::numeric end) as aug_sales
  155. ,sum(case when d_moy = 9
  156. then cs_ext_sales_price* cs_quantity::numeric else 0::numeric end) as sep_sales
  157. ,sum(case when d_moy = 10
  158. then cs_ext_sales_price* cs_quantity::numeric else 0::numeric end) as oct_sales
  159. ,sum(case when d_moy = 11
  160. then cs_ext_sales_price* cs_quantity::numeric else 0::numeric end) as nov_sales
  161. ,sum(case when d_moy = 12
  162. then cs_ext_sales_price* cs_quantity::numeric else 0::numeric end) as dec_sales
  163. ,sum(case when d_moy = 1
  164. then cs_net_paid_inc_ship_tax * cs_quantity::numeric else 0::numeric end) as jan_net
  165. ,sum(case when d_moy = 2
  166. then cs_net_paid_inc_ship_tax * cs_quantity::numeric else 0::numeric end) as feb_net
  167. ,sum(case when d_moy = 3
  168. then cs_net_paid_inc_ship_tax * cs_quantity::numeric else 0::numeric end) as mar_net
  169. ,sum(case when d_moy = 4
  170. then cs_net_paid_inc_ship_tax * cs_quantity::numeric else 0::numeric end) as apr_net
  171. ,sum(case when d_moy = 5
  172. then cs_net_paid_inc_ship_tax * cs_quantity::numeric else 0::numeric end) as may_net
  173. ,sum(case when d_moy = 6
  174. then cs_net_paid_inc_ship_tax * cs_quantity::numeric else 0::numeric end) as jun_net
  175. ,sum(case when d_moy = 7
  176. then cs_net_paid_inc_ship_tax * cs_quantity::numeric else 0::numeric end) as jul_net
  177. ,sum(case when d_moy = 8
  178. then cs_net_paid_inc_ship_tax * cs_quantity::numeric else 0::numeric end) as aug_net
  179. ,sum(case when d_moy = 9
  180. then cs_net_paid_inc_ship_tax * cs_quantity::numeric else 0::numeric end) as sep_net
  181. ,sum(case when d_moy = 10
  182. then cs_net_paid_inc_ship_tax * cs_quantity::numeric else 0::numeric end) as oct_net
  183. ,sum(case when d_moy = 11
  184. then cs_net_paid_inc_ship_tax * cs_quantity::numeric else 0::numeric end) as nov_net
  185. ,sum(case when d_moy = 12
  186. then cs_net_paid_inc_ship_tax * cs_quantity::numeric else 0::numeric end) as dec_net
  187. from
  188. plato.catalog_sales
  189. ,plato.warehouse
  190. ,plato.date_dim
  191. ,plato.time_dim
  192. ,plato.ship_mode
  193. where
  194. cs_warehouse_sk = w_warehouse_sk
  195. and cs_sold_date_sk = d_date_sk
  196. and cs_sold_time_sk = t_time_sk
  197. and cs_ship_mode_sk = sm_ship_mode_sk
  198. and d_year = 2002
  199. and t_time between 49530 AND 49530+28800
  200. and sm_carrier in ('DIAMOND','AIRBORNE')
  201. group by
  202. w_warehouse_name
  203. ,w_warehouse_sq_ft
  204. ,w_city
  205. ,w_county
  206. ,w_state
  207. ,w_country
  208. ,d_year
  209. ) x
  210. group by
  211. w_warehouse_name
  212. ,w_warehouse_sq_ft
  213. ,w_city
  214. ,w_county
  215. ,w_state
  216. ,w_country
  217. ,ship_carriers
  218. ,year
  219. order by w_warehouse_name
  220. limit 100;
  221. -- end query 1 in stream 0 using template ../query_templates/query66.tpl