SQL188 牛客直播各科目出勤率

首先需要对attend_tb表进行预处理,把一天内多次登录的数据只保留一条数据,避免出现重复计算,同时筛选出观看时长大于等于10的数据

with t1 as (
    select distinct 
        user_id,course_id
    from 
        attend_tb
    where 
        timestampdiff(minute,in_datetime,out_datetime)>=10
)

select
    behavior_tb.course_id
    ,course_name
    ,round(count(t1.user_id)*100/sum(if_sign),2) `attend_rate(%)`
from
    course_tb right join behavior_tb on course_tb.course_id=behavior_tb.course_id
    left join t1 on behavior_tb.course_id=t1.course_id and
    behavior_tb.user_id=t1.user_id
group by
    behavior_tb.course_id,course_name
order by
    course_id asc
全部评论

相关推荐

鼠鼠没有找到暑期实习,简历太空了,感觉直接去秋招会完蛋,这个时间点找个日常实习混个简历,边实习边准备秋招有没有搞头啊
梦想是成为七海千秋:可以的完全可以的,找不到暑期就找日常,秋招之前还是有很多时间可以实习的,哪怕只实习了一个月都可以写在简历上
点赞 评论 收藏
分享
真烦好烦真烦:牛友太有实力了
点赞 评论 收藏
分享
爱吃肉的伊登在写日记:好棒,27届简历能做成这个样子,但是第一个项目感觉cover住难度还是不小的,特别是二面的时候肯定要对分布式系统设计这一块儿有高出正常面试者的水平才行
点赞 评论 收藏
分享
06-18 15:03
重庆大学 运营
运营你豪哥:做一下被打的数据,分析输出优化建议
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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