题解 | #根据指定记录是否存在输出不同情况#

根据指定记录是否存在输出不同情况

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

with data_f_use as (
    select uid, level
    , count(start_time) as total_cnt
    , count(submit_time) as completed
    , count(start_time) - count(submit_time) as incomplete_cnt
    from user_info left join exam_record using (uid)
    group by level, uid
)
    select uid, incomplete_cnt
    , ifnull(round(incomplete_cnt / total_cnt, 3), 0) as incomplete_rate
    from data_f_use
    where 
        (case
            when (select max(incomplete_cnt) from data_f_use where level = 0) > 2 
            then (uid in (select uid from data_f_use where level = 0))
         else (uid in (select uid from exam_record where start_time is not null))
         end
    )
    order by incomplete_rate 
用 case expression 也可以
全部评论

相关推荐

05-30 18:54
武汉商学院 Java
湫湫湫不会java:先投着吧,大概率找不到实习,没实习的时候再加个项目,然后把个人评价和荣誉奖项删了,赶紧成为八股战神吧,没实习没学历,秋招机会估计不多,把握机会。或者说秋招时间去冲实习,春招冲offer,但是压力会比较大
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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