题解 | #牛客直播各科目出勤率#

牛客直播各科目出勤率

https://www.nowcoder.com/practice/0cab547df4f0430b93042128f445d899

with
    t1 as(
        #每个报名人的上课情况记录
        select 
            distinct
            ct.course_id,
            ct.course_name,
            bt.user_id,
            if(in_datetime is null,0,(unix_timestamp(out_datetime)-unix_timestamp(in_datetime))/60 )`sub_minutes`
        from behavior_tb `bt`
        left join attend_tb `at`
        on bt.user_id =at.user_id and bt.course_id=at.course_id
        join course_tb `ct`
        on ct.course_id = bt.course_id
        where bt.if_sign=1
    ),
    t2 as(
        #获取每个报名人每科听课总时长的记录
        select 
            distinct
            course_id,
            course_name, 
            user_id,
            sum(sub_minutes) over(partition by course_id,course_name,user_id  ) `total_minutes`
        from t1
    )

select 
    course_id,
    course_name, 
    round(100*sum(if(total_minutes>=10,1,0))/sum(if(total_minutes is null,1,1)),2) `attend_rate(%)`
from t2
group by course_id,course_name

全部评论

相关推荐

找工作勤劳小蜜蜂:矛盾是没有实习,就是没实战经验,公司不想要,公司不要,你就没有实习,你就进入死循环,另外你的项目不是社会现在有大量岗位存在行业用的,云存储人员早就饱和。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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