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);