|
@@ -18,18 +18,22 @@
|
|
|
, count(s.user_id_) as memberNum
|
|
|
, (count(distinct s.user_id_) - count(distinct pr.user_id_)) as noPlayNum
|
|
|
, count(distinct if(10 * 60 >= pr.play_time_, pr.user_id_, null)) as playTimeLess10
|
|
|
- , count(distinct if(pr.play_time_ > 10 * 60 and 600 * 60 >= pr.play_time_, pr.user_id_, null)) as playTimeLess60
|
|
|
- , count(distinct if(pr.play_time_ > 10 * 60 and 120 * 60 >= pr.play_time_, pr.user_id_, null)) as playTimeLess120
|
|
|
+ , count(distinct if(pr.play_time_ > 10 * 60 and 60 * 60 >= pr.play_time_, pr.user_id_, null)) as playTimeLess60
|
|
|
+ , count(distinct if(pr.play_time_ > 60 * 60 and 120 * 60 >= pr.play_time_, pr.user_id_, null)) as playTimeLess120
|
|
|
, count(distinct if(pr.play_time_ > 120 * 60 and 240 * 60 >= pr.play_time_, pr.user_id_, null)) as playTimeLess240
|
|
|
, count(distinct if(pr.play_time_ > 240 * 60, pr.user_id_, null)) as playTimeRather240
|
|
|
, if(count(distinct pr.user_id_) = 0, 0, (sum(pr.play_time_) / (count(distinct pr.user_id_) * 60))) as avgPlayTime
|
|
|
from organization o
|
|
|
left join sys_user su on o.id_ = su.organ_id_
|
|
|
left join student s on s.user_id_ = su.id_
|
|
|
- left join student_courseware_play_record pr on s.user_id_ = pr.user_id_ and pr.create_time_ > #{statQuery.startTime} and #{statQuery.endTime} > pr.create_time_
|
|
|
+ left join (select user_id_, sum(play_time_) play_time_
|
|
|
+ from student_courseware_play_record
|
|
|
+ where create_time_ > #{statQuery.startTime}
|
|
|
+ and #{statQuery.endTime} > create_time_
|
|
|
+ group by user_id_) pr on s.user_id_ = pr.user_id_
|
|
|
where s.membership_end_time_ >= now()
|
|
|
group by o.id_
|
|
|
- order by #{statQuery.sortBy}
|
|
|
+ order by ${statQuery.sortBy}
|
|
|
</select>
|
|
|
<select id="statDetailPage" resultType="com.ym.mec.biz.dal.wrapper.StudentCoursewarePlayRecordWrapper$StatQueryData">
|
|
|
select o.id_ as organizationId
|
|
@@ -48,10 +52,14 @@
|
|
|
left join student s on s.user_id_ = su.id_
|
|
|
left join student_teacher_mapper stm on stm.student_id_ = s.user_id_
|
|
|
left join sys_user su2 on su2.id_ = stm.teacher_id_
|
|
|
- left join student_courseware_play_record pr on s.user_id_ = pr.user_id_ and pr.create_time_ > #{statQuery.startTime} and #{statQuery.endTime} > pr.create_time_
|
|
|
+ left join (select user_id_, sum(play_time_) play_time_
|
|
|
+ from student_courseware_play_record
|
|
|
+ where create_time_ > #{statQuery.startTime}
|
|
|
+ and #{statQuery.endTime} > create_time_
|
|
|
+ group by user_id_) pr on s.user_id_ = pr.user_id_
|
|
|
where o.id_ = #{statQuery.organizationId}
|
|
|
and s.membership_end_time_ >= now()
|
|
|
group by stm.teacher_id_
|
|
|
- order by #{statQuery.sortBy}
|
|
|
+ order by ${statQuery.sortBy}
|
|
|
</select>
|
|
|
</mapper>
|