0
点赞
收藏
分享

微信扫一扫

SQL语句查询不同年龄段人数

扒皮狼 2022-03-14 阅读 56

xml文件:

<select id="selectAge" resultType="java.util.Map">
        SELECT
        CASE
        WHEN s.age IS NULL THEN
        '未知'
        WHEN s.age &lt; 20 THEN
        '小于20岁'
        WHEN s.age &gt;= 20
        AND s.age &lt;= 30 THEN
        '20-30岁'
        WHEN s.age &gt; 30
        AND s.age &lt;= 40 THEN
        '31-40岁'
        WHEN s.age &gt; 40
        AND s.age &lt;= 50 THEN
        '41-50岁'
        WHEN s.age &gt; 50
        AND s.age &lt;= 60 THEN
        '51-60岁'
        WHEN s.age &gt; 60
        AND s.age &lt;= 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 &lt; 20 THEN
        '小于20岁'
        WHEN s.age &gt;= 20
        AND s.age &lt;= 30 THEN
        '20-30岁'
        WHEN s.age &gt; 30
        AND s.age &lt;= 40 THEN
        '31-40岁'
        WHEN s.age &gt; 40
        AND s.age &lt;= 50 THEN
        '41-50岁'
        WHEN s.age &gt; 50
        AND s.age &lt;= 60 THEN
        '51-60岁'
        WHEN s.age &gt; 60
        AND s.age &lt;= 65 THEN
        '61-65岁'
        END;
    </select>

mapper层:

List<Map<String, String>> selectAge(@Param("classId")Long classId);
举报

相关推荐

0 条评论