GuestRT

voronka-c

Sep 20th, 2018
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 11.22 KB | None | 0 0
  1.  SET hive.tez.container.SIZE = 6656
  2. ;
  3.  
  4.  DROP TABLE SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_01
  5. ;
  6.  
  7.  DROP TABLE SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_02
  8. ;
  9.  
  10.  DROP TABLE SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_03
  11. ;
  12.  
  13.  DROP TABLE SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_04
  14. ;
  15.  
  16.  DROP TABLE SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_05
  17. ;
  18.  
  19.  DROP TABLE SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_06
  20. ;
  21.  
  22.  DROP TABLE SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_07
  23. ;
  24.  
  25.  DROP TABLE SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_08
  26. ;
  27.  
  28.  DROP TABLE SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_09
  29. ;
  30.  
  31.  DROP TABLE SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_10
  32. ;
  33.  
  34.  DROP TABLE SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_11
  35. ;
  36.  
  37.  DROP TABLE SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_12
  38. ;
  39.  
  40.  DROP TABLE SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_13
  41. ;
  42.  
  43.  DROP TABLE SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_14
  44. ;
  45.  
  46.  DROP TABLE SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_15
  47. ;
  48.  
  49.  DROP TABLE SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_16
  50. ;
  51.  
  52.  DROP TABLE SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_17
  53. ;
  54.  
  55.  DROP TABLE SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_18
  56. ;
  57.  
  58.  DROP TABLE SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_19
  59. ;
  60.  
  61.  DROP TABLE SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_20
  62. ;
  63.  
  64.  DROP TABLE SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_21
  65. ;
  66.  
  67.  DROP TABLE SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_22
  68. ;
  69.  
  70.  DROP TABLE SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_23
  71. ;
  72.  
  73.  DROP TABLE SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_24
  74. ;
  75.  
  76.  DROP TABLE SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_25
  77. ;
  78.  
  79.  DROP TABLE SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_26
  80. ;
  81.  
  82.  DROP TABLE CITY_EVENT_DATA.D_50C_METRO_CALC_S_NGPT_DATA
  83. ;
  84.  
  85.  SET hivevar:START_DAY_01='2018-08-24'
  86. ;
  87.  
  88.  SET hivevar:END_DAY_01='2018-08-25'
  89. ;
  90.  
  91.  SET hivevar:START_DAY_02='2018-08-31'
  92. ;
  93.  
  94.  SET hivevar:END_DAY_02='2018-09-01'
  95. ;
  96.  
  97.  CREATE TABLE SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_01
  98. AS
  99. SELECT nm
  100. ,line
  101. ,MIN(check_day) AS min_day FROM SANDBOX.YURBASOV_D_50B_METRO_CALC_S_NGPT_DATA_V2_12 GROUP BY nm, line ORDER BY nm, line
  102. ;
  103.  
  104.  CREATE TABLE SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_02
  105. AS
  106. SELECT nm
  107. ,line
  108. ,route
  109. ,ticket_code
  110. ,cnt
  111. ,check_day
  112. ,CASE WHEN nm IN ('Мичуринский проспект','Озёрная','Говорово','Солнцево','Боровское шоссе','Новопеределкино','Рассказовка') THEN 1 ELSE 0 END AS is_main
  113. ,CASE WHEN nm IN ('Мичуринский проспект','Озёрная','Говорово','Солнцево','Боровское шоссе','Новопеределкино','Рассказовка') THEN 0 ELSE 1 END AS is_extra FROM SANDBOX.YURBASOV_D_50B_METRO_CALC_S_NGPT_DATA_V2_12
  114. ;
  115.  
  116.  CREATE TABLE SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_03
  117. AS
  118. SELECT ticket_code, check_day
  119. ,MAX(is_main) AS main_flg
  120. ,MAX(is_extra) AS extra_flg FROM SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_02 GROUP BY ticket_code, check_day
  121. ;
  122.  
  123.  CREATE TABLE SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_04
  124. AS
  125. SELECT ticket_code AS x_ticket_code
  126. ,main_flg AS main_flg_a
  127. ,extra_flg AS extra_flg_a FROM SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_03 WHERE check_day < ${hivevar:START_DAY_02}
  128. ;
  129.  
  130.  CREATE TABLE SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_05
  131. AS
  132. SELECT ticket_code AS y_ticket_code
  133. ,main_flg AS main_flg_b
  134. ,extra_flg AS extra_flg_b FROM SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_03 WHERE check_day >= ${hivevar:START_DAY_02}
  135. ;
  136.  
  137.  CREATE TABLE SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_06
  138. AS
  139. SELECT ticket_code
  140. ,CASE WHEN extra_flg_a + main_flg_a > 0 THEN 1 ELSE 0 END AS is_old
  141. ,CASE WHEN extra_flg_a + main_flg_a <= 0 THEN 1 ELSE 0 END AS is_new
  142. ,main_flg_a
  143. ,main_flg_b
  144. ,extra_flg_a
  145. ,extra_flg_b FROM SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_03 JOIN SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_04 ON x_ticket_code = ticket_code JOIN SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_05 ON y_ticket_code = ticket_code
  146. ;
  147.  
  148.  CREATE TABLE SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_07
  149. AS
  150. SELECT ticket_code AS o_ticket_code
  151. ,is_old FROM SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_06 WHERE is_old > 0
  152. ;
  153.  
  154.  CREATE TABLE SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_08
  155. AS
  156. SELECT ticket_code AS n_ticket_code
  157. ,is_new
  158. ,main_flg_a
  159. ,main_flg_b
  160. ,extra_flg_a
  161. ,extra_flg_b FROM SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_06 WHERE is_new > 0
  162. ;
  163.  
  164.  CREATE TABLE SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_09
  165. AS
  166. SELECT nm
  167. ,line
  168. ,route
  169. ,ticket_code
  170. ,cnt
  171. ,check_day
  172. ,is_old
  173. ,is_new
  174. ,main_flg_a
  175. ,main_flg_b
  176. ,extra_flg_a
  177. ,extra_flg_b FROM SANDBOX.YURBASOV_D_50B_METRO_CALC_S_NGPT_DATA_V2_12 LEFT JOIN SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_07 ON o_ticket_code = ticket_code LEFT JOIN SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_08 ON n_ticket_code = ticket_code
  178. ;
  179.  
  180.  CREATE TABLE SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_10
  181. AS
  182. SELECT nm
  183. ,line
  184. ,route
  185. ,ticket_code
  186. ,CAST(cnt AS BIGINT) AS cnt
  187. ,check_day
  188. ,is_old
  189. ,is_new
  190. ,main_flg_a
  191. ,main_flg_b
  192. ,extra_flg_a
  193. ,extra_flg_b FROM SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_09 WHERE check_day < ${hivevar:START_DAY_02}
  194. ;
  195.  
  196.  CREATE TABLE SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_11
  197. AS
  198. SELECT nm AS nm_11
  199. ,line AS line_11
  200. ,SUM(cnt) AS total_cnt_a FROM SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_10 GROUP BY nm, line
  201. ;
  202.  
  203.  CREATE TABLE SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_12
  204. AS
  205. SELECT nm
  206. ,line
  207. ,route
  208. ,ticket_code
  209. ,CAST(cnt AS BIGINT) AS cnt
  210. ,check_day
  211. ,is_old
  212. ,is_new
  213. ,main_flg_a
  214. ,main_flg_b
  215. ,extra_flg_a
  216. ,extra_flg_b FROM SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_09 WHERE check_day >= ${hivevar:START_DAY_02}
  217. ;
  218.  
  219.  CREATE TABLE SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_13
  220. AS
  221. SELECT nm AS nm_13
  222. ,line AS line_13
  223. ,SUM(cnt) AS total_cnt_b FROM SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_12 GROUP BY nm, line
  224. ;
  225.  
  226.  CREATE TABLE SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_14
  227. AS
  228. SELECT nm
  229. ,line
  230. ,route
  231. ,ticket_code
  232. ,CAST(cnt AS BIGINT) AS cnt
  233. ,check_day
  234. ,is_old
  235. ,is_new
  236. ,main_flg_a
  237. ,main_flg_b
  238. ,extra_flg_a
  239. ,extra_flg_b FROM SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_09 WHERE route != 'метро' AND check_day < ${hivevar:START_DAY_02}
  240. ;
  241.  
  242.  CREATE TABLE SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_15
  243. AS
  244. SELECT nm AS nm_15
  245. ,line AS line_15
  246. ,SUM(cnt) AS ngpt_cnt_a FROM SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_14 GROUP BY nm, line
  247. ;
  248.  
  249.  CREATE TABLE SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_16
  250. AS
  251. SELECT nm
  252. ,line
  253. ,route
  254. ,ticket_code
  255. ,CAST(cnt AS BIGINT) AS cnt
  256. ,check_day
  257. ,is_old
  258. ,is_new
  259. ,main_flg_a
  260. ,main_flg_b
  261. ,extra_flg_a
  262. ,extra_flg_b FROM SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_09 WHERE route != 'метро' AND check_day >= ${hivevar:START_DAY_02}
  263. ;
  264.  
  265.  CREATE TABLE SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_17
  266. AS
  267. SELECT nm AS nm_17
  268. ,line AS line_17
  269. ,SUM(cnt) AS ngpt_cnt_b FROM SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_16 GROUP BY nm, line
  270. ;
  271.  
  272.  CREATE TABLE SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_18
  273. AS
  274. SELECT nm AS nm_18
  275. ,line AS line_18
  276. ,SUM(cnt) AS new_total_cnt_a FROM SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_10 GROUP BY nm, line, is_new HAVING is_new > 0
  277. ;
  278.  
  279.  CREATE TABLE SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_19
  280. AS
  281. SELECT nm AS nm_19
  282. ,line AS line_19
  283. ,SUM(cnt) AS new_total_cnt_b FROM SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_12 GROUP BY nm, line, is_new HAVING is_new > 0
  284. ;
  285.  
  286.  CREATE TABLE SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_20
  287. AS
  288. SELECT nm AS nm_20
  289. ,line AS line_20
  290. ,SUM(cnt) AS new_ngpt_cnt_a FROM SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_14 GROUP BY nm, line, is_new HAVING is_new > 0
  291. ;
  292.  
  293.  CREATE TABLE SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_21
  294. AS
  295. SELECT nm AS nm_21
  296. ,line AS line_21
  297. ,SUM(cnt) AS new_ngpt_cnt_b FROM SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_16 GROUP BY nm, line, is_new HAVING is_new > 0
  298. ;
  299.  
  300.  CREATE TABLE SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_22
  301. AS
  302. SELECT nm AS nm_22
  303. ,line AS line_22
  304. ,SUM(cnt) AS old_total_cnt_a FROM SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_10 GROUP BY nm, line, is_old HAVING is_old > 0
  305. ;
  306.  
  307.  CREATE TABLE SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_23
  308. AS
  309. SELECT nm AS nm_23
  310. ,line AS line_23
  311. ,SUM(cnt) AS old_total_cnt_b FROM SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_12 GROUP BY nm, line, is_old HAVING is_old > 0
  312. ;
  313.  
  314.  CREATE TABLE SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_24
  315. AS
  316. SELECT nm AS nm_24
  317. ,line AS line_24
  318. ,SUM(cnt) AS old_ngpt_cnt_a FROM SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_14 GROUP BY nm, line, is_old HAVING is_old > 0
  319. ;
  320.  
  321.  CREATE TABLE SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_25
  322. AS
  323. SELECT nm AS nm_25
  324. ,line AS line_25
  325. ,SUM(cnt) AS old_ngpt_cnt_b FROM SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_16 GROUP BY nm, line, is_old HAVING is_old > 0
  326. ;
  327.  
  328.  CREATE TABLE SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_26
  329. AS
  330. SELECT nm
  331. ,line
  332. ,CASE WHEN total_cnt_a + total_cnt_b > 0 THEN 1 - total_cnt_b / (total_cnt_a + total_cnt_b) ELSE 0.0 END AS p
  333. ,total_cnt_a
  334. ,total_cnt_b
  335. ,ngpt_cnt_a
  336. ,ngpt_cnt_b
  337.         ,CASE WHEN new_total_cnt_a > 0 THEN new_total_cnt_a ELSE 0 END AS new_total_cnt_a
  338.         ,CASE WHEN new_total_cnt_b > 0 THEN new_total_cnt_b ELSE 0 END AS new_total_cnt_b
  339.         ,CASE WHEN new_ngpt_cnt_a > 0 THEN new_ngpt_cnt_a ELSE 0 END AS new_ngpt_cnt_a
  340.         ,CASE WHEN new_ngpt_cnt_b > 0 THEN new_ngpt_cnt_b ELSE 0 END AS new_ngpt_cnt_b
  341.         ,old_total_cnt_a
  342.         ,old_total_cnt_b
  343.         ,old_ngpt_cnt_a
  344.         ,old_ngpt_cnt_b
  345.         ,CASE WHEN new_ngpt_cnt_b + new_ngpt_cnt_a > 0 THEN old_total_cnt_b + new_total_cnt_b - old_total_cnt_a - new_total_cnt_a ELSE old_total_cnt_b - old_total_cnt_a END AS auto_cnt_delta
  346.         ,min_day FROM SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_01 JOIN SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_11 ON nm = nm_11 AND line = line_11 JOIN SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_13 ON nm = nm_13 AND line = line_13 LEFT JOIN SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_15 ON nm = nm_15 AND line = line_15 LEFT JOIN SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_17 ON nm = nm_17 AND line = line_17 LEFT JOIN SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_18 ON nm = nm_18 AND line = line_18 LEFT JOIN SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_19 ON nm = nm_19 AND line = line_19 LEFT JOIN SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_20 ON nm = nm_20 AND line = line_20 LEFT JOIN SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_21 ON nm = nm_21 AND line = line_21 LEFT JOIN SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_22 ON nm = nm_22 AND line = line_22 LEFT JOIN SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_23 ON nm = nm_23 AND line = line_23 LEFT JOIN SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_24 ON nm = nm_24 AND line = line_24 LEFT JOIN SANDBOX.YURBASOV_D_50C_METRO_CALC_S_NGPT_DATA_V2_25 ON nm = nm_25 AND line = line_25 ORDER BY p DESC
  347. ;
Advertisement
Add Comment
Please, Sign In to add comment