题解 | 统计每个班级的关键指标

统计每个班级的关键指标

https://www.nowcoder.com/practice/07beee54ac62455586016ea1b018d371

with a as(
    select 
        class_id,
        count(student_id) as learners_enrolled
    from course_enroll_  
    group by class_id
),
b as(
    select 
        s.class_id,
        course_id,
        count(distinct student_id ) as learners_active_m,
        count(distinct case when finished_flag=1 then student_id end) as finishers_m,
        ifnull(round((count(distinct case when finished_flag=1 then student_id end))/count(distinct student_id ),2),0) as completion_rate,
        sum(watch_minutes) as total_minutes_m,
        ifnull(round(sum(watch_minutes)/count(distinct student_id),2),0) as avg_minutes_per_active,
        rank() over(partition by course_id order by ifnull(round(sum(watch_minutes)/count(distinct student_id ),2),0) desc) as rank_in_course
    from study_logs_ s join course_class_ using(class_id )
    where date_format(log_ts ,'%Y-%m')='2024-08' 
    group by s.class_id,course_id
)
select 
    c.class_id,
    c.course_id,
    teacher_id,
    learners_enrolled,
    learners_active_m,
    finishers_m,
    completion_rate,
    total_minutes_m,
    avg_minutes_per_active,
    rank_in_course
from course_class_  c
    left join a using(class_id)
    left join b using(class_id)
order by  c.course_id,
    rank_in_course,
    c.class_id;

全部评论

相关推荐

LastWh1spe...:ssob真有些人和那个没睡醒一样
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
01-07 00:20
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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