题解 | 超充站故障派单链路统计

超充站故障派单链路统计

https://www.nowcoder.com/practice/0995ab4acb05404591cfab71df3d11e4

WITH RECURSIVE tree AS (
    SELECT merged.task_id AS root_task_id,merged.*,0 as level
    FROM 
        (SELECT operator_name,station_name,fault_dispatch_tasks.*
        FROM fault_dispatch_tasks
        LEFT JOIN charging_stations using(station_id)
        WHERE operator_name = '极曜能源' AND dispatched_at BETWEEN '2025-11-05 00:00:00' and '2025-11-09 23:59:59') merged
    WHERE parent_task_id IS NULL
    UNION ALL 
    SELECT tree.root_task_id,merged2.*,tree.level+1
    FROM 
        (SELECT operator_name,station_name,fault_dispatch_tasks.*
        FROM fault_dispatch_tasks
        LEFT JOIN charging_stations using(station_id)
        WHERE operator_name = '极曜能源' ) merged2
    INNER JOIN tree ON merged2.parent_task_id=tree.task_id

)
SELECT
    root_task_id,
    station_name,
    COUNT(1) AS total_task_count,          -- 总下属工单数
    MAX(level) AS max_depth,               -- 最深层级
    SUM(CASE WHEN task_status = 'resolved' THEN 1 ELSE 0 END) AS resolved_leaf_count, -- 已解决数量
    COUNT(DISTINCT fault_type) AS distinct_fault_type_count, -- 不同故障类型数
    ROUND(SUM(handling_minutes) / 60.0, 2) AS total_handling_hours -- 总处理小时(保留2位)
FROM tree 
GROUP BY root_task_id,station_name
ORDER BY resolved_leaf_count DESC,max_depth DESC,total_task_count DESC,root_task_id

全部评论
OK 我是第一个
点赞 回复 分享
发布于 03-14 16:09 北京

相关推荐

评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务