WITH filtered AS (
    SELECT
        Name,
        Full,
        Half_Full,
        Jam,
        No_Container,
        Block_Operation,
        t_stamp
    FROM lane_data
    WHERE Name LIKE 'S01%'          -- only S01 lanes
),

latest AS (
    -- FAST latest row per lane (NO window functions)
    SELECT f.*
    FROM filtered f
    INNER JOIN (
        SELECT Name, MAX(t_stamp) AS max_ts
        FROM filtered
        GROUP BY Name
    ) x ON f.Name = x.Name AND f.t_stamp = x.max_ts
),

totals AS (
    SELECT
        GREATEST(COUNT(*), 382) AS total_lanes,         -- MIN 382
        COUNT(*) AS real_lane_count,
        SUM(Jam) AS jammed_count,
        SUM(Half_Full) AS half_full_count,
        SUM(Full) AS full_count,
        SUM(No_Container) AS no_container_count,
        SUM(Block_Operation) AS block_operation_count
    FROM latest
)

-- Jammed
SELECT
    'Jammed' AS `Status`,
    jammed_count AS `Count`,
    ROUND(jammed_count * 100.0 / total_lanes, 2) AS `Percentage (%)`
FROM totals

UNION ALL

-- 50% Full
SELECT
    '50% Full',
    half_full_count,
    ROUND(half_full_count * 100.0 / total_lanes, 2)
FROM totals

UNION ALL

-- 100% Full
SELECT
    '100% Full',
    full_count,
    ROUND(full_count * 100.0 / total_lanes, 2)
FROM totals

UNION ALL

-- No Container
SELECT
    'No Container',
    no_container_count,
    ROUND(no_container_count * 100.0 / total_lanes, 2)
FROM totals

UNION ALL

-- Blocked by Operator
SELECT
    'Blocked by Operator',
    block_operation_count,
    ROUND(block_operation_count * 100.0 / total_lanes, 2)
FROM totals;
