一个子查询,两个join即可
select distinct user_id, course_id from attend_tb where timestampdiff(minute, in_datetime, out_datetime) >= 10
select course_id, course_name,
round(count(t1.user_id)*100/sum(if_sign),2) as 'attend_rate(%)'
from
(
select distinct user_id, course_id
from attend_tb
where timestampdiff(minute, in_datetime, out_datetime) >= 10
) as t1
right join behavior_tb
using(user_id, course_id)
inner join course_tb
using(course_id)
group by course_id, course_name
order by course_id

京公网安备 11010502036488号