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

牛客直播各科目出勤率

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

明确题意:出勤率(在线时长10分钟及以上人数),可以对attend_tb表根据course_id, user_id分组用sum(timestampdiff(minute, begin,end))计算出勤时间(退出再进累计够10分钟也算),统计满足条件的user_id数。

报名人数:behavior_tb这张表一个用户对一门课,不会重复的,因此分母只需统计sum(bt.if_sign)即可得到报名人数。

select ct.course_id, 
    ct.course_name,
    round(100 * count(distinct if(t1.time1 >= 10, bt.user_id, null)) / sum(bt.if_sign), 2) as 'attend_rate(%)'
from course_tb ct
join behavior_tb bt on ct.course_id=bt.course_id
# 此处需要用左连接,因为可能存在用户报名了但是并没有观看的,分母仍然需要记录
left join (
    select user_id, 
        course_id,
        sum(timestampdiff(minute, in_datetime, out_datetime)) as time1
    from attend_tb
    group by user_id, course_id
) t1 on bt.course_id=t1.course_id and bt.user_id=t1.user_id
group by ct.course_id, ct.course_name
order by ct.course_id asc

全部评论

相关推荐

人间雪:简历最好只要一页,除非你牛逼到一页都写不下了
点赞 评论 收藏
分享
背景:深圳大学(双非),大一开始攒实习,大二进四大(KPMG,PwC),大三进滴滴、Vivo、腾讯,毕业顺利拿到字节、快手offer。-1️⃣ 第一件事情打磨面试包,争取面试来的时候,可以一次性抓住我在去年暑期实习的时候收到的第一份面邀是WXG,面试官人特别特别好,可是我当时正在实习,没时间全力准备面试,第一轮没有悬念的挂了…重点打磨简历面试,简历问题占大部分面试的70-80%打磨方法:建立自己的面试包,每一段经历问自己这几个问题:1 团队背景2 介绍一下你在携程的项目3 介绍实习中最有成就感的事情/项目4 介绍一个实习遇到的挑战,你是如何解决的5 需求来源及分析过程6 数据结果及分析逻辑7 复盘可以做得更好的地方/遇到的困难点8 针对这个功能/需求未来的规划不过最重要的是实战,这些问题应付个7788,剩余的就靠每次面试录音,回头一个一个问题优化回答,有用的记得补进面试包,这个一点一点完善的感觉还超级有成就感。面到后面即使实习是dirtywork,面试官也被你的说辞搞得一愣一愣的-2️⃣ 第二件事情,除了准备面试,每天看到招聘信息就立刻投。拿到面试的概率=投递的数量×投递的有效程度(简历好不好)需要投递公司的list给我留言哦!3️⃣ 笔试就不单拎出来讲了,大部分笔试都是找个题库随便做做,7-80分左右就可以了,像腾讯、滴滴、阿里灵犀、快手这些都不咋看笔试成绩。我知道会看笔试的公司:美团、安克创新、携程、百度-
贺兰星辰:反了吧...美团不是最不看笔试成绩的吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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