|
@@ -331,14 +331,12 @@
|
|
|
COUNT(DISTINCT a.user_id) AS answer_user_count,
|
|
COUNT(DISTINCT a.user_id) AS answer_user_count,
|
|
|
COUNT(DISTINCT CASE WHEN a.is_right = 1 THEN a.user_id END) AS correct_user_count
|
|
COUNT(DISTINCT CASE WHEN a.is_right = 1 THEN a.user_id END) AS correct_user_count
|
|
|
FROM fs_course_watch_log w
|
|
FROM fs_course_watch_log w
|
|
|
- LEFT JOIN fs_course_answer_logs a ON w.video_id = a.video_id AND w.user_id = a.user_id
|
|
|
|
|
|
|
+ LEFT JOIN fs_course_answer_logs a ON a.watch_log_id = w.log_id
|
|
|
<where>
|
|
<where>
|
|
|
<if test="startTime != null">w.create_time <![CDATA[>=]]> #{startTime}</if>
|
|
<if test="startTime != null">w.create_time <![CDATA[>=]]> #{startTime}</if>
|
|
|
<if test="endTime != null">AND w.create_time <![CDATA[<]]> #{endTime}</if>
|
|
<if test="endTime != null">AND w.create_time <![CDATA[<]]> #{endTime}</if>
|
|
|
<if test="userType != null">AND w.send_type = #{userType}</if>
|
|
<if test="userType != null">AND w.send_type = #{userType}</if>
|
|
|
<if test="companyId != null">AND w.company_id = #{companyId}</if>
|
|
<if test="companyId != null">AND w.company_id = #{companyId}</if>
|
|
|
-<!-- <if test="startTime != null">AND a.create_time <![CDATA[>=]]> #{startTime}</if> -->
|
|
|
|
|
-<!-- <if test="endTime != null">AND a.create_time <![CDATA[<]]> #{endTime}</if> -->
|
|
|
|
|
</where>
|
|
</where>
|
|
|
GROUP BY w.course_id
|
|
GROUP BY w.course_id
|
|
|
ORDER BY answer_user_count
|
|
ORDER BY answer_user_count
|
|
@@ -358,7 +356,7 @@
|
|
|
COUNT(DISTINCT a.user_id) AS answer_user_count,
|
|
COUNT(DISTINCT a.user_id) AS answer_user_count,
|
|
|
COUNT(DISTINCT CASE WHEN a.is_right = 1 THEN a.user_id END) AS correct_user_count
|
|
COUNT(DISTINCT CASE WHEN a.is_right = 1 THEN a.user_id END) AS correct_user_count
|
|
|
FROM fs_course_watch_log w
|
|
FROM fs_course_watch_log w
|
|
|
- LEFT JOIN fs_course_answer_logs a ON w.video_id = a.video_id AND w.user_id = a.user_id
|
|
|
|
|
|
|
+ LEFT JOIN fs_course_answer_logs a ON a.watch_log_id = w.log_id
|
|
|
<where>
|
|
<where>
|
|
|
<if test="startTime != null">w.create_time <![CDATA[>=]]> #{startTime}</if>
|
|
<if test="startTime != null">w.create_time <![CDATA[>=]]> #{startTime}</if>
|
|
|
<if test="endTime != null">AND w.create_time <![CDATA[<]]> #{endTime}</if>
|
|
<if test="endTime != null">AND w.create_time <![CDATA[<]]> #{endTime}</if>
|
|
@@ -383,7 +381,7 @@
|
|
|
COUNT(DISTINCT a.user_id) AS answer_user_count,
|
|
COUNT(DISTINCT a.user_id) AS answer_user_count,
|
|
|
COUNT(DISTINCT CASE WHEN a.is_right = 1 THEN a.user_id END) AS correct_user_count
|
|
COUNT(DISTINCT CASE WHEN a.is_right = 1 THEN a.user_id END) AS correct_user_count
|
|
|
FROM fs_course_answer_logs a
|
|
FROM fs_course_answer_logs a
|
|
|
- INNER JOIN fs_course_watch_log w ON a.video_id = w.video_id AND a.user_id = w.user_id
|
|
|
|
|
|
|
+ INNER JOIN fs_course_watch_log w ON a.watch_log_id = w.log_id
|
|
|
<where>
|
|
<where>
|
|
|
w.course_id IN
|
|
w.course_id IN
|
|
|
<foreach collection="courseIds" item="courseId" open="(" close=")" separator=",">
|
|
<foreach collection="courseIds" item="courseId" open="(" close=")" separator=",">
|