6 天以前 0c23c1e9b9e06ffc570edac28ee45555b772b99c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.safety.mapper.SafetyLearningRecordMapper">
 
    <select id="selectStatistics" resultType="com.ruoyi.safety.dto.SafetyLearningStatistics">
        SELECT
            COUNT(1) AS totalCount,
            IFNULL(SUM(CASE WHEN status = 1 THEN 1 ELSE 0 END), 0) AS completedCount,
            IFNULL(SUM(CASE WHEN status = 0 THEN 1 ELSE 0 END), 0) AS unfinishedCount,
            IFNULL(SUM(duration), 0) AS totalDuration,
            CASE
                WHEN COUNT(1) = 0 THEN 0
                ELSE ROUND(IFNULL(SUM(CASE WHEN status = 1 THEN 1 ELSE 0 END), 0) / COUNT(1) * 100, 2)
            END AS completionRate
        FROM safety_learning_record
        WHERE del_flag = 0
    </select>
</mapper>