SQL出勤率
表: user_login
字段:user_id course_id login_in login_out
表:course_apply
字段:course_id user_id(是个列表 【1,2,3,4】)
需求:出勤率指用户看直播时间超过40分钟,则视为出勤
期望结果:
课程id 出勤率
注意: 转成时间戳再减,单位是秒,要转换成分
1 select l.course_id,l.ct / r.sumct 出勤率 from ( 2 3 select 4 -- 分子 5 course_id,sum(if(flag = 1 ,1,0)) ct 6 from ( 7 select 8 -- 判断是否有效出勤 9 user_id,course_id,if(sum(dfmint)>=40,1,0) flag 10 from ( 11 select 12 13 user_id,course_id,(ous-ins) / 60 dfmint 14 from ( 15 16 select user_id,course_id, unix_timestamp(login_in,'yyyy-MM-dd HH:mm:ss') as ins 17 ,unix_timestamp(login_out,'yyyy-MM-dd HH:mm:ss') as ous from user_login 18 ) a 19 ) b group by user_id,course_id 20 ) c group by course_id 21 ) l join ( 22 23 select course_id,size(user_id) sumct from course_apply 24 ) r on l.course_id = r.course_id
浙公网安备 33010602011771号