题解 | #有取消订单记录的司机平均评分#

有取消订单记录的司机平均评分

https://www.nowcoder.com/practice/f022c9ec81044d4bb7e0711ab794531a

with
    didList as (
        select
            driver_id as did
        from
            tb_get_car_record
            join tb_get_car_order using (order_id)
        where
            start_time is null
    ),
    dataList as (
        select
            driver_id,
            grade
        from
            tb_get_car_record
            join tb_get_car_order using (order_id)
        where
            driver_id in (
                select
                    did
                from
                    didList
            )
    )
select
    coalesce(driver_id,'总体') driver_id,
    round(avg(grade),1)
from
    dataList
where 
    grade is not null 
group by 
    driver_id 
    with rollup

本体难度不大,

步骤1:先求出grade=null的drive_id 的列表,然后将用户打车表和打车订单表通过order_id去连接。

步骤2:group by drive_id with rollup 注意必须要将drive_id进行一个null判断可以用ifnull或者coalesce

全部评论

相关推荐

你背过凌晨4点的八股文么:简历挂了的话会是流程终止,像我一样
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务