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

牛客直播各科目出勤率

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

select a.course_id,a.course_name,round(sum(attend)/sign_num*100,2)
from course_tb a
left join
(
select b.user_id,b.course_id,count(distinct(b.user_id)) as attend
from attend_tb b
left join behavior_tb c
on b.user_id=c.user_id and b.course_id=c.course_id
where if_sign=1
group by b.course_id,b.user_id
having sum(timestampdiff(minute,in_datetime,out_datetime))>=10
) t1
on a.course_id=t1.course_id
left join
(select course_id,count(*) as sign_num
from behavior_tb
where if_sign=1
group by course_id
)t2
on a.course_id=t2.course_id
group by a.course_id,course_name
order by a.course_id

个人理解此类计算各种比率的问题都可以通过多重并表来完成

全部评论

相关推荐

肖先生~:先别说工资,现在有个工作就不错了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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