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

牛客直播各科目出勤率

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

# 重点在于计算出勤率中的出勤人数,即计算 每个科目 每个人的在线时长,再找出每个科目在线时长大于10分钟的人数

# 每个科目 每个人的在线时长 简化为 in_datetime 和 out_datetime 的差

WITH t AS (SELECT
course_id,
course_name,
user_id,
TIMESTAMPDIFF(SECOND,in_datetime,out_datetime)/60 AS online_time
FROM attend_tb
JOIN course_tb USING(course_id)),

t1 AS (SELECT
course_id,
course_name,
COUNT(DISTINCT IF(online_time>10,user_id,NULL)) AS attend
FROM t
GROUP BY course_id,course_name),

t2 AS (SELECT
course_id,
course_name,
SUM(if_sign) AS signs
FROM behavior_tb
JOIN course_tb USING(course_id)
GROUP BY course_id,course_name)

SELECT
t1.course_id,
t1.course_name,
ROUND(attend/signs*100,2) AS attend_rate
FROM t1 JOIN t2 ON t1.course_id = t2.course_id AND t1.course_name = t2.course_name;


全部评论

相关推荐

点赞 评论 收藏
分享
05-12 17:00
门头沟学院 Java
king122:你的项目描述至少要分点呀,要实习的话,你的描述可以使用什么技术,实现了什么难点,达成了哪些数字指标,这个数字指标尽量是真实的,这样面试应该会多很多,就这样自己包装一下,包装不好可以找我,我有几个大厂最近做过的实习项目也可以包装一下
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-01 10:56
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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