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

牛客直播各科目出勤率

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

# 4/17 10:43 ~ 
# 字段:course_id、course_name、attend_rate(%)
# 出勤率 = 出勤人数(在线时长10分钟以上) / 报名人数

# tb1:出勤人数, 按照user_id、course_id分组,统计出勤时间
with tb1 as (
    select user_id,course_id,course_name,sum(timestampdiff(second,in_datetime,out_datetime)) as on_time,if_sign
    from attend_tb left join course_tb using(course_id)
    left join behavior_tb using(user_id,course_id)
    # 统计课程开始后进入的用户
    # where course_datetime between in_datetime and out_datetime or course_datetime < out_datetime
    group by user_id,course_id,course_name,if_sign
),
# tb2:出勤人数
tb2 as(
    select course_id,course_name,count(user_id) as attend_num
    from tb1 
    where on_time > 600
    group by course_id,course_name
),
# tb3:报名人数
tb3 as(
    select course_id, count(if_sign) as sign_num
    from  behavior_tb
    where if_sign = 1
    group by course_id
)
select course_id,course_name,round(100*attend_num/sign_num,2) as attend_rate
from tb2 left join tb3 using(course_id)
# 注意点:报名人数和出勤人数的表不能用同一原始表



全部评论

相关推荐

不愿透露姓名的神秘牛友
07-04 18:02
好不容易拿到了字节Offer,鼠鼠做后端的,但家里人觉得可能被裁员不稳定,让鼠鼠去投国企,现在好纠结到底该咋选
文档传偷助手:该投就投吧,不过建议别放弃offer 拿到手里的才是最好的
投递字节跳动等公司10个岗位
点赞 评论 收藏
分享
zhch7:建议9✌️把学历加黑加粗,如果实在offer可能是觉得佬不会去
投了多少份简历才上岸
点赞 评论 收藏
分享
屌丝逆袭咸鱼计划:心态摆好,man,晚点找早点找到最后都是为了提升自己好进正职,努力提升自己才是最关键的😤难道说现在找不到找的太晚了就炸了可以鸡鸡了吗😤早实习晚实习不都是为了以后多积累,大四学长有的秋招进的也不妨碍有的春招进,人生就这样
点赞 评论 收藏
分享
uu们,拒offer时hr很生气怎么办我哭死
爱睡觉的冰箱哥:人家回收你的offer,或者oc后没给你发offer的时候可不会愧疚你,所以你拒了也没必要愧疚他。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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