Advertisement
Guest User

Untitled

a guest
Jan 17th, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 2.87 KB | None | 0 0
  1. WITH pr AS
  2.     (SELECT    
  3.           DAY
  4.         , v_regno
  5.         , concat(v_gps_y, '_', v_gps_x) AS camera_id
  6.         , v_time_check
  7.         , lag(v_time_check, 1) OVER (partition BY v_regno ORDER BY v_time_check) AS l_previous_overall
  8.         , lead(v_time_check, 1) OVER (partition BY v_regno ORDER BY v_time_check) AS r_previous_overall
  9.  
  10.     FROM codd_data.codd
  11.     WHERE DAY >= '2017-07-10'
  12.      ),
  13.     pre AS (
  14.         SELECT DAY
  15.         , v_regno
  16.         , camera_id
  17.         , v_time_check
  18.         , l_previous_overall
  19.         , r_previous_overall
  20.         , lag(camera_id, 1) OVER (partition BY v_regno ORDER BY v_time_check) AS l_cam
  21.         , lead(camera_id, 1) OVER (partition BY v_regno ORDER BY v_time_check) AS r_cam
  22.         FROM pr
  23.         ),
  24.      time_diff AS (
  25.         SELECT
  26.               DAY
  27.             , v_regno
  28.             , camera_id
  29.             , v_time_check
  30.             , abs(round((unix_timestamp(v_time_check) - unix_timestamp(l_previous_overall))/60, 0)) AS t_diff_prev
  31.             , abs(round((unix_timestamp(v_time_check) - unix_timestamp(r_previous_overall))/60, 0)) AS t_diff_next
  32.             , l_cam
  33.             , r_cam
  34.         FROM pre
  35.          ),
  36.      filtered_car AS(
  37.         SELECT
  38.               DAY
  39.             , v_regno
  40.             , camera_id
  41.             , v_time_check
  42.             , l_cam
  43.             , r_cam
  44.             , t_diff_prev
  45.             , t_diff_next
  46.     FROM time_diff
  47.     WHERE (camera_id IN ('55.789635_37.548138',
  48.                             '55.788334_37.54572',
  49.                             '55.77837_37.557087',
  50.                             '55.77862_37.55678',
  51.                             '55.77687_37.555447',
  52.                             '55.774197_37.5512',
  53.                             '55.77351_37.54544',
  54.                             '55.77408_37.54278',
  55.                             '55.774826_37.53855',
  56.                             '55.77711_37.53234',
  57.                             '55.777546_37.52722​') AND l_cam IN('55.789635_37.548138',
  58.                                                                 '55.788334_37.54572',
  59.                                                                 '55.77837_37.557087',
  60.                                                                 '55.77862_37.55678',
  61.                                                                 '55.77687_37.555447',
  62.                                                                 '55.774197_37.5512',
  63.                                                                 '55.77351_37.54544',
  64.                                                                 '55.77408_37.54278',
  65.                                                                 '55.774826_37.53855',
  66.                                                                 '55.77711_37.53234',
  67.                                                                 '55.777546_37.52722​') AND t_diff_prev >= 300 ) OR
  68.                              (camera_id IN ('55.789635_37.548138',
  69.                             '55.788334_37.54572',
  70.                             '55.77837_37.557087',
  71.                             '55.77862_37.55678',
  72.                             '55.77687_37.555447',
  73.                             '55.774197_37.5512',
  74.                             '55.77351_37.54544',
  75.                             '55.77408_37.54278',
  76.                             '55.774826_37.53855',
  77.                             '55.77711_37.53234',
  78.                             '55.777546_37.52722​') AND r_cam IN('55.789635_37.548138',
  79.                                                                 '55.788334_37.54572',
  80.                                                                 '55.77837_37.557087',
  81.                                                                 '55.77862_37.55678',
  82.                                                                 '55.77687_37.555447',
  83.                                                                 '55.774197_37.5512',
  84.                                                                 '55.77351_37.54544',
  85.                                                                 '55.77408_37.54278',
  86.                                                                 '55.774826_37.53855',
  87.                                                                 '55.77711_37.53234',
  88.                                                                 '55.777546_37.52722​') AND t_diff_next >= 300)
  89.         ),
  90.  
  91. afin AS (
  92.     SELECT v_regno, COUNT(*) AS cnt
  93.     FROM filtered_car
  94.     GROUP BY v_regno
  95.     )
  96. SELECT *
  97. FROM afin
  98. WHERE cnt >= 24
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement