WITH time_points AS (
    -- 收集所有可能的关键时间点
    SELECT DISTINCT cid, start_time as check_time 
    FROM play_record_tb
    UNION
    SELECT DISTINCT cid, end_time as check_time 
    FROM play_record_tb
),
concurrent_at_each_time AS (
    -- 对每个时间点计算该时刻的并发数
    SELECT 
        tp.cid,
        tp.check_time,
        COUNT(pr.id) as concurrent_count
    FROM time_points tp
    LEFT JOIN play_record_tb pr ON tp.cid = pr.cid
        AND pr.start_time <= tp.check_time 
        AND pr.end_time >= tp.check_time
    GROUP BY tp.cid, tp.check_time
),
max_concurrent AS (
    -- 找出每个视频的最大并发数
    SELECT 
        cid,
        MAX(concurrent_count) as max_count
    FROM concurrent_at_each_time
    GROUP BY cid
)
SELECT 
    cid,
    FORMAT(max_count, 3) as max_concurrent_count
FROM max_concurrent
ORDER BY max_count DESC, cid
LIMIT 3;