GuestRT

auto_mkad_away

Aug 27th, 2018
192
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 5.66 KB | None | 0 0
  1.  DROP TABLE SANDBOX.YURBASOV_IG493_RADIUS_01
  2. ;
  3.  
  4.  DROP TABLE SANDBOX.YURBASOV_IG493_RADIUS_02
  5. ;
  6.  
  7.  DROP TABLE SANDBOX.YURBASOV_IG493_RADIUS_03
  8. ;
  9.  
  10.  DROP TABLE SANDBOX.YURBASOV_IG493_RADIUS_04
  11. ;
  12.  
  13.  DROP TABLE SANDBOX.YURBASOV_IG493_RADIUS_05
  14. ;
  15.  
  16.  DROP TABLE SANDBOX.YURBASOV_IG493_RADIUS_06
  17. ;
  18.  
  19.  DROP TABLE SANDBOX.YURBASOV_IG493_RADIUS_07
  20. ;
  21.  
  22.  DROP TABLE SANDBOX.YURBASOV_IG493_RADIUS_08
  23. ;
  24.  
  25.  DROP TABLE SANDBOX.YURBASOV_IG493_RADIUS_09
  26. ;
  27.  
  28.  DROP TABLE SANDBOX.YURBASOV_IG493_RADIUS_10
  29. ;
  30.  
  31.  DROP TABLE CITY_EVENT_DATA.IG493_RADIUS
  32. ;
  33.  
  34.  SET hivevar:START_DAY='2018-03-01'
  35. ;
  36.  
  37.  SET hivevar:END_DAY='2018-04-30'
  38. ;
  39.  
  40.  CREATE TABLE SANDBOX.YURBASOV_IG493_RADIUS_01
  41. AS WITH t_01 AS
  42. (
  43. SELECT
  44.   DAY,
  45.   v_regno,
  46.   CASE WHEN codd_kafka.v_gps_y > 55 THEN codd_kafka.v_gps_y ELSE codd_kafka.v_gps_x END AS camera_x,
  47.   CASE WHEN codd_kafka.v_gps_y > 55 THEN codd_kafka.v_gps_x ELSE codd_kafka.v_gps_y END AS camera_y,
  48.   v_time_check
  49. FROM codd_data.codd codd_kafka
  50. WHERE DAY <= '2018-04-31'
  51. AND PMOD(DATEDIFF(from_unixtime(unix_timestamp(v_time_check, 'dd.MM.yyyy HH:mm:ss'),'yyyy-MM-dd'), '2012-01-01'), 7) IN (1, 2, 3, 4, 5)
  52. AND DAY >= '2018-03-01'
  53. ) SELECT * FROM t_01
  54. ;
  55.  
  56.  CREATE TABLE SANDBOX.YURBASOV_IG493_RADIUS_02
  57. AS WITH t_02 AS (
  58. SELECT 55.71677 AS v_gps_x, 37.40415 AS v_gps_y
  59. UNION ALL SELECT 55.71689 AS v_gps_x, 37.407196 AS v_gps_y
  60. UNION ALL SELECT 55.911114 AS v_gps_x, 37.54446 AS v_gps_y
  61. UNION ALL SELECT 55.91438 AS v_gps_x, 37.54427 AS v_gps_y
  62. UNION ALL SELECT 55.83083 AS v_gps_x, 37.3796 AS v_gps_y
  63. UNION ALL SELECT 55.829914 AS v_gps_x, 37.37475 AS v_gps_y
  64. UNION ALL SELECT 55.829647 AS v_gps_x, 37.374035 AS v_gps_y
  65. UNION ALL SELECT 55.825462 AS v_gps_x, 37.36427 AS v_gps_y
  66. UNION ALL SELECT 55.57221 AS v_gps_x, 37.597527 AS v_gps_y
  67. UNION ALL SELECT 55.570908 AS v_gps_x, 37.598785 AS v_gps_y
  68. UNION ALL SELECT 55.876934 AS v_gps_x, 37.48232 AS v_gps_y
  69. UNION ALL SELECT 55.872738 AS v_gps_x, 37.48292 AS v_gps_y
  70. UNION ALL SELECT 55.87125 AS v_gps_x, 37.45795 AS v_gps_y
  71. UNION ALL SELECT 55.871475 AS v_gps_x, 37.458572 AS v_gps_y
  72. ) SELECT * FROM t_02
  73. ;
  74.  
  75.  CREATE TABLE SANDBOX.YURBASOV_IG493_RADIUS_03
  76. AS WITH t_03 AS (
  77. SELECT 55.725147 AS v_gps_x, 37.38045 AS v_gps_y
  78. UNION ALL SELECT 55.69867 AS v_gps_x, 37.40296 AS v_gps_y
  79. UNION ALL SELECT 55.884384 AS v_gps_x, 37.472168 AS v_gps_y
  80. UNION ALL SELECT 55.891403 AS v_gps_x, 37.49469 AS v_gps_y
  81. UNION ALL SELECT 55.878273 AS v_gps_x, 37.43426 AS v_gps_y
  82. UNION ALL SELECT 55.88252 AS v_gps_x, 37.448956 AS v_gps_y
  83. ) SELECT * FROM t_03
  84. ;
  85.  
  86.  CREATE TABLE SANDBOX.YURBASOV_IG493_RADIUS_04
  87. AS WITH t_04 AS
  88. (
  89. SELECT
  90.   v_regno,
  91.   camera_x, camera_y,
  92.   weekofyear(v_time_check) AS w_no,
  93.   COUNT(*) AS cnt
  94. FROM SANDBOX.YURBASOV_IG493_RADIUS_01 base
  95.  JOIN SANDBOX.YURBASOV_IG493_RADIUS_02 tgt1
  96.  ON acos(sin((90.0 - v_gps_y) * pi() / 180.0) * sin((90.0 - camera_y) * pi() / 180.0) * cos(radians(v_gps_x) - radians(camera_x))
  97.        + cos((90.0 - v_gps_y) * pi() / 180.0) * cos((90.0 - camera_y) * pi() / 180.0)) * 6371000 <= 100
  98. GROUP BY v_regno,
  99.          camera_x, camera_y,
  100.          weekofyear(v_time_check)
  101.    
  102. ) SELECT * FROM t_04
  103. ;
  104.  
  105.  CREATE TABLE SANDBOX.YURBASOV_IG493_RADIUS_05
  106. AS WITH t_05 AS
  107. (
  108. SELECT pre1.v_regno, pre1.cnt FROM SANDBOX.YURBASOV_IG493_RADIUS_04 pre1
  109. ) SELECT * FROM t_05
  110. ;
  111.  
  112.  CREATE TABLE SANDBOX.YURBASOV_IG493_RADIUS_06
  113. AS WITH t_06 AS
  114. (
  115. SELECT DISTINCT
  116.   v_regno
  117. FROM SANDBOX.YURBASOV_IG493_RADIUS_04 f1
  118.  WHERE cnt >= 24
  119.    
  120. ) SELECT * FROM t_06
  121. ;
  122.  
  123.  CREATE TABLE SANDBOX.YURBASOV_IG493_RADIUS_07
  124. AS WITH t_07 AS
  125. (
  126.  
  127. SELECT
  128.     xxxx1.v_regno AS v_regno
  129.     , sec.regno_hash AS regno_hash
  130.     , sec.regno AS regno
  131. FROM SANDBOX.YURBASOV_IG493_RADIUS_06 xxxx1
  132.  JOIN secret.regno AS sec ON xxxx1.v_regno = sec.regno_hash
  133.  GROUP BY
  134.  v_regno, regno_hash, regno
  135. ) SELECT * FROM t_07
  136. ;
  137.  
  138.  CREATE TABLE SANDBOX.YURBASOV_IG493_RADIUS_08
  139. AS WITH t_08 AS
  140. (
  141. SELECT
  142.   extra1.v_regno,
  143.   extra1.regno,
  144.   par.phoneno
  145. FROM SANDBOX.YURBASOV_IG493_RADIUS_07 extra1
  146.  JOIN city_event_data.d_calc0a_regno_x_phoneno par
  147.   ON extra1.v_regno = par.carno
  148. WHERE par.carno IS NOT NULL
  149. GROUP BY
  150. extra1.v_regno, extra1.regno,
  151. par.phoneno
  152. ) SELECT * FROM t_08
  153. ;
  154.  
  155.  CREATE TABLE SANDBOX.YURBASOV_IG493_RADIUS_09
  156. AS WITH t_09 AS
  157. (
  158.  
  159.     SELECT res1.phoneno, res1.regno, res1.v_regno FROM SANDBOX.YURBASOV_IG493_RADIUS_08 res1
  160. ) SELECT * FROM t_09
  161. ;
  162.  
  163.  CREATE TABLE SANDBOX.YURBASOV_MKAD_AWAY
  164. -- Необходимо собрать список телефонов аудитории, которая минимум 3 раза в неделю в будние дни фиксируется
  165. --  на пограничных (МКАД) камерах с утра на въезд и вечером на выезд.
  166. -- по следующим шоссе:
  167. -- Можайскому
  168. -- 55.71677_37.40415    VS 55.725147_37.38045 --
  169. -- 55.71689_37.407196    VS 55.69867_37.40296 --
  170. -- Дмитровскому
  171. -- 55.911114_37.54446 --
  172. -- 55.91438_37.54427 --
  173. -- Минскому
  174. --
  175. -- Волоколамскому
  176. -- 55.83083_37.3796 --
  177. -- 55.829914_37.37475 --
  178. -- 55.829647_37.374035 --
  179. -- 55.825462_37.36427 --
  180. -- Симферопольскому
  181. -- 55.57221_37.597527 --
  182. -- 55.570908_37.598785 --
  183. -- Варшавскому
  184. --
  185. -- Лобненскому
  186. -- 55.876934_37.48232    VS 55.884384_37.472168 --
  187. -- 55.872738_37.48292    VS 55.891403_37.49469 --
  188. -- Ленинградскому шоссе
  189. -- 55.87125_37.45795   VS 55.878273_37.43426 --
  190. -- 55.871475_37.458572    VS 55.88252_37.448956 --
  191. AS WITH t_10 AS
  192. (
  193. SELECT s.phone, res.regno, res.v_regno FROM SANDBOX.YURBASOV_IG493_RADIUS_09 res JOIN secret.phones s ON s.phone_hash = res.phoneno
  194.    
  195. ) SELECT * FROM t_10
  196. ;
Advertisement
Add Comment
Please, Sign In to add comment