select course_name, round(AVG(duration), 2) as avg_Len from ( select b.course_name, a.course_id, TIMESTAMPDIFF(MINUTE, a.in_datetime, a.out_datetime) as duration from attend_tb as a left join course_tb as b on a.course_id = b.course_id ) as c group by course_name order by avg_Len desc;