xml文件:
 
<select id="selectAge" resultType="java.util.Map">
        SELECT
        CASE
        WHEN s.age IS NULL THEN
        '未知'
        WHEN s.age < 20 THEN
        '小于20岁'
        WHEN s.age >= 20
        AND s.age <= 30 THEN
        '20-30岁'
        WHEN s.age > 30
        AND s.age <= 40 THEN
        '31-40岁'
        WHEN s.age > 40
        AND s.age <= 50 THEN
        '41-50岁'
        WHEN s.age > 50
        AND s.age <= 60 THEN
        '51-60岁'
        WHEN s.age > 60
        AND s.age <= 65 THEN
        '61-65岁'
        END AS age,
        count(*) AS sum
        FROM
        py_student s
        left join open_class_group_user gu
        on gu.user_id = s.id
        LEFT JOIN open_class_group g
        on g.id = gu.group_id
        where s.del_flag = 0 and s.id in (
        select user_id from open_class_group_user
        where group_id in (
        select id from open_class_group
        where class_id = #{classId}
        )
        )
        GROUP BY
        CASE
        WHEN s.age IS NULL THEN
        '未知'
        WHEN s.age < 20 THEN
        '小于20岁'
        WHEN s.age >= 20
        AND s.age <= 30 THEN
        '20-30岁'
        WHEN s.age > 30
        AND s.age <= 40 THEN
        '31-40岁'
        WHEN s.age > 40
        AND s.age <= 50 THEN
        '41-50岁'
        WHEN s.age > 50
        AND s.age <= 60 THEN
        '51-60岁'
        WHEN s.age > 60
        AND s.age <= 65 THEN
        '61-65岁'
        END;
    </select>
 
mapper层:
 
List<Map<String, String>> selectAge(@Param("classId")Long classId);