Skip to content

Commit

Permalink
chore: plates after and before a interval
Browse files Browse the repository at this point in the history
  • Loading branch information
d116626 committed Jun 26, 2024
1 parent d518a52 commit d8e7e93
Show file tree
Hide file tree
Showing 2 changed files with 118 additions and 36 deletions.
73 changes: 37 additions & 36 deletions queries/models/utils/api_plate_interval_locs.sql
Original file line number Diff line number Diff line change
@@ -1,38 +1,39 @@
WITH ordered_positions AS (
SELECT
DATETIME(datahora, "America/Sao_Paulo") AS datahora,
placa,
camera_numero,
camera_latitude,
camera_longitude
FROM `rj-cetrio.ocr_radar.readings_*`
WHERE
placa IN ("{{placa}}")
AND (camera_latitude != 0 AND camera_longitude != 0)
AND DATETIME_TRUNC(DATETIME(datahora, "America/Sao_Paulo"), HOUR) >= DATETIME_TRUNC(DATETIME("{{min_datetime}}"), HOUR)
AND DATETIME_TRUNC(DATETIME(datahora, "America/Sao_Paulo"), HOUR) <= DATETIME_TRUNC(DATETIME("{{max_datetime}}"), HOUR)
ORDER BY datahora ASC, placa ASC
),
WITH ordered_positions AS (
SELECT
DISTINCT
DATETIME(datahora, "America/Sao_Paulo") AS datahora,
placa,
camera_numero,
camera_latitude,
camera_longitude
FROM `rj-cetrio.ocr_radar.readings_*`
WHERE
placa IN ("")
AND (camera_latitude != 0 AND camera_longitude != 0)
AND DATETIME_TRUNC(DATETIME(datahora, "America/Sao_Paulo"), HOUR) >= DATETIME_TRUNC(DATETIME("2024-06-19T00:00:00"), HOUR)
AND DATETIME_TRUNC(DATETIME(datahora, "America/Sao_Paulo"), HOUR) <= DATETIME_TRUNC(DATETIME("2024-06-19T18:00:00"), HOUR)
ORDER BY datahora ASC, placa ASC
),

loc AS (
SELECT
t2.camera_numero,
t1.bairro,
t1.locequip AS localidade,
CAST(t1.latitude AS FLOAT64) AS latitude,
CAST(t1.longitude AS FLOAT64) AS longitude,
FROM `rj-cetrio.ocr_radar_staging.equipamento` t1
JOIN `rj-cetrio.ocr_radar.equipamento_codcet_to_camera_numero` t2
ON t1.codcet = t2.codcet
)
loc AS (
SELECT
t2.camera_numero,
t1.bairro,
t1.locequip AS localidade,
CAST(t1.latitude AS FLOAT64) AS latitude,
CAST(t1.longitude AS FLOAT64) AS longitude,
FROM `rj-cetrio.ocr_radar_staging.equipamento` t1
JOIN `rj-cetrio.ocr_radar.equipamento_codcet_to_camera_numero` t2
ON t1.codcet = t2.codcet
)

SELECT
p.datahora,
p.camera_numero,
COALECE(l.latitude, p.camera_latitude) AS latitude,
COALECE(l.longitude, p.camera_longitude) AS longitude,
l.bairro,
l.localidade
FROM ordered_positions p
JOIN loc l ON p.camera_numero = l.camera_numero
ORDER BY p.datahora ASC
SELECT
p.datahora,
p.camera_numero,
COALESCE(l.latitude, p.camera_latitude) AS latitude,
COALESCE(l.longitude, p.camera_longitude) AS longitude,
l.bairro,
l.localidade
FROM ordered_positions p
JOIN loc l ON p.camera_numero = l.camera_numero
ORDER BY p.datahora ASC
81 changes: 81 additions & 0 deletions queries/models/utils/pedido_n_placas_antes_depois.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
WITH loc AS (
SELECT
t2.camera_numero,
t1.locequip,
t1.bairro,
CAST(t1.latitude AS FLOAT64) AS latitude,
CAST(t1.longitude AS FLOAT64) AS longitude
FROM `rj-cetrio.ocr_radar.equipamento` t1
JOIN `rj-cetrio.ocr_radar.equipamento_codcet_to_camera_numero` t2
ON t1.codcet = t2.codcet
),

tb AS (
SELECT
*,
DATETIME(datahora, "America/Sao_Paulo") AS datahora_local
FROM `rj-cetrio.ocr_radar.readings_*`
WHERE placa = ""
AND DATETIME(datahora, "America/Sao_Paulo") BETWEEN "2024-01-01T00:00:00" AND "2024-01-01T00:00:00"
ORDER BY datahora
),

selected AS (
SELECT
t1.placa,
t1.tipoveiculo,
t1.velocidade,
t1.datahora_local,
t1.camera_numero,
t1.empresa,
COALESCE(t2.latitude, t1.camera_latitude) AS latitude,
COALESCE(t2.longitude, t1.camera_longitude) AS longitude,
t1.datahora_captura,
t2.locequip,
t2.bairro
FROM tb t1
JOIN loc t2
ON t1.camera_numero = t2.camera_numero
),

all_readings AS (
SELECT
t1.placa,
t1.tipoveiculo,
t1.velocidade,
DATETIME(t1.datahora, 'America/Sao_Paulo') AS datahora_local,
t1.camera_numero,
t1.empresa,
COALESCE(t2.latitude, t1.camera_latitude) AS latitude,
COALESCE(t2.longitude, t1.camera_longitude) AS longitude,
DATETIME(t1.datahora_captura, 'America/Sao_Paulo') AS datahora_captura,
t2.locequip,
t2.bairro,
ROW_NUMBER() OVER (PARTITION BY t1.camera_numero ORDER BY t1.datahora) AS row_num
FROM `rj-cetrio.ocr_radar.readings_*` t1
JOIN loc t2
ON t1.camera_numero = t2.camera_numero
),

selected_with_row_num AS (
SELECT
s.*,
a.row_num AS selected_row_num
FROM selected s
JOIN all_readings a
ON s.camera_numero = a.camera_numero
AND s.datahora_local = a.datahora_local
),

before_and_after AS (
SELECT
a.*
FROM all_readings a
JOIN selected_with_row_num s
ON a.camera_numero = s.camera_numero
AND (a.row_num BETWEEN s.selected_row_num - 20 AND s.selected_row_num + 20)
)

SELECT *
FROM before_and_after
ORDER BY camera_numero, datahora_local;

0 comments on commit d8e7e93

Please sign in to comment.