BNA8/.resources/bb178473065e14486ed2540b4efa6dc6808f5ed3790988955c4121a590b3d761

67 lines
1.3 KiB
Plaintext

-- Main jam results
SELECT
Name,
Jam_count
FROM (
SELECT
Name,
COUNT(*) AS Jam_count
FROM (
-- AREA JAMS
SELECT
Name,
t_stamp
FROM jam_area
WHERE t_stamp BETWEEN :starttime AND :endtime
UNION ALL
-- DEVICE JAMS with edge detection
SELECT
Name,
t_stamp
FROM (
SELECT
Name,
t_stamp,
Jam,
@prev := IF(@lastName = Name, @prevJam, 0) AS prevJam,
@prevJam := Jam,
@lastName := Name
FROM lane_data,
(SELECT @prevJam := 0, @lastName := '') AS vars
WHERE t_stamp BETWEEN :starttime AND :endtime
ORDER BY Name, t_stamp
) x
WHERE Jam = 1 AND prevJam = 0
) all_jams
GROUP BY Name
) jam_results
UNION ALL
-- Fallback row if nothing exists
SELECT
'N/A' AS Name,
0 AS Jam_count
WHERE NOT EXISTS (
SELECT 1
FROM (
-- AREA JAMS
SELECT
Name
FROM jam_area
WHERE t_stamp BETWEEN :starttime AND :endtime
UNION ALL
-- DEVICE JAMS
SELECT
Name
FROM lane_data
WHERE t_stamp BETWEEN :starttime AND :endtime
AND Jam = 1
) t
);