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

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

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 也可以
全部评论

相关推荐

在debug的柠檬精很迷人:好消息:现在HR挑三拣四 15年后 HR跪着求要简历 坏消息:被挑的是这代人,到时候求人的也是这代人。真好。
点赞 评论 收藏
分享
06-04 20:17
门头沟学院 Java
牛客713608542号:有的,我今天刚面了一个小厂,他们说刚好有缺人,就放出来了,成都的旅鸽,hxd不如去试试,但是是线下哇,不知道他们支不支持线上,如果有面记得多复习一下sql,我死在这一块上了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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