BNA8/.resources/b313101696815f8a5dc71ed44a7dbc8bffa30994add9f5944a5099cc44d2a995

63 lines
1.3 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

WITH jam_data AS (
/* TRUE JAM COUNTS PER DEVICE */
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 EDGE DETECT */
SELECT
Name,
t_stamp
FROM
(
SELECT
Name,
t_stamp,
Jam,
IF(@lastName = Name, @prevJam, 0) AS prevJam,
@prevJam := Jam,
@lastName := Name
FROM lane_data
JOIN (SELECT @prevJam := 0, @lastName := '') AS vars
WHERE t_stamp BETWEEN :starttime AND :endtime
ORDER BY Name, t_stamp
) AS x
WHERE Jam = 1 AND prevJam = 0
) all_jams
GROUP BY Name
),
total AS (
SELECT SUM(Jam_count) AS Total_jams
FROM jam_data
)
SELECT
jd.Name,
ROUND((jd.Jam_count / t.Total_jams) * 100, 2) AS Jam_percentage
FROM jam_data jd
JOIN total t
WHERE t.Total_jams > 0
UNION ALL
/* FALLBACK IF NOTHING EXISTS */
SELECT
'N/A' AS Name,
0 AS Jam_percentage
WHERE NOT EXISTS (
SELECT 1 FROM jam_data
)
ORDER BY Jam_percentage DESC;