Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- WITH pr AS
- (SELECT
- DAY
- , v_regno
- , concat(v_gps_y, '_', v_gps_x) AS camera_id
- , v_time_check
- , lag(v_time_check, 1) OVER (partition BY v_regno ORDER BY v_time_check) AS l_previous_overall
- , lead(v_time_check, 1) OVER (partition BY v_regno ORDER BY v_time_check) AS r_previous_overall
- FROM codd_data.codd
- WHERE DAY >= '2017-07-10'
- ),
- pre AS (
- SELECT DAY
- , v_regno
- , camera_id
- , v_time_check
- , l_previous_overall
- , r_previous_overall
- , lag(camera_id, 1) OVER (partition BY v_regno ORDER BY v_time_check) AS l_cam
- , lead(camera_id, 1) OVER (partition BY v_regno ORDER BY v_time_check) AS r_cam
- FROM pr
- ),
- time_diff AS (
- SELECT
- DAY
- , v_regno
- , camera_id
- , v_time_check
- , abs(round((unix_timestamp(v_time_check) - unix_timestamp(l_previous_overall))/60, 0)) AS t_diff_prev
- , abs(round((unix_timestamp(v_time_check) - unix_timestamp(r_previous_overall))/60, 0)) AS t_diff_next
- , l_cam
- , r_cam
- FROM pre
- ),
- filtered_car AS(
- SELECT
- DAY
- , v_regno
- , camera_id
- , v_time_check
- , l_cam
- , r_cam
- , t_diff_prev
- , t_diff_next
- FROM time_diff
- WHERE (camera_id IN ('55.789635_37.548138',
- '55.788334_37.54572',
- '55.77837_37.557087',
- '55.77862_37.55678',
- '55.77687_37.555447',
- '55.774197_37.5512',
- '55.77351_37.54544',
- '55.77408_37.54278',
- '55.774826_37.53855',
- '55.77711_37.53234',
- '55.777546_37.52722') AND l_cam IN('55.789635_37.548138',
- '55.788334_37.54572',
- '55.77837_37.557087',
- '55.77862_37.55678',
- '55.77687_37.555447',
- '55.774197_37.5512',
- '55.77351_37.54544',
- '55.77408_37.54278',
- '55.774826_37.53855',
- '55.77711_37.53234',
- '55.777546_37.52722') AND t_diff_prev >= 300 ) OR
- (camera_id IN ('55.789635_37.548138',
- '55.788334_37.54572',
- '55.77837_37.557087',
- '55.77862_37.55678',
- '55.77687_37.555447',
- '55.774197_37.5512',
- '55.77351_37.54544',
- '55.77408_37.54278',
- '55.774826_37.53855',
- '55.77711_37.53234',
- '55.777546_37.52722') AND r_cam IN('55.789635_37.548138',
- '55.788334_37.54572',
- '55.77837_37.557087',
- '55.77862_37.55678',
- '55.77687_37.555447',
- '55.774197_37.5512',
- '55.77351_37.54544',
- '55.77408_37.54278',
- '55.774826_37.53855',
- '55.77711_37.53234',
- '55.777546_37.52722') AND t_diff_next >= 300)
- ),
- afin AS (
- SELECT v_regno, COUNT(*) AS cnt
- FROM filtered_car
- GROUP BY v_regno
- )
- SELECT *
- FROM afin
- WHERE cnt >= 24
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement