题解 | #统计每种性别的人数#

统计每种性别的人数

https://www.nowcoder.com/practice/f04189f92f8d4f6fa0f383d413af7cb8

WITH RECURSIVE
    cte AS (
        SELECT
            device_id,
            SUBSTRING_INDEX (profile, ',', 1) AS part,
            SUBSTRING(profile, INSTR (profile, ',') + 1) AS remaining_string,
            1 AS level
        FROM
            user_submit
        WHERE
            profile IS NOT NULL
            AND profile <> ''
        UNION ALL
        SELECT
            device_id,
            SUBSTRING_INDEX (remaining_string, ',', 1) AS part,
            IF (
                INSTR (remaining_string, ',') > 0,
                SUBSTRING(
                    remaining_string,
                    INSTR (remaining_string, ',') + 1
                ),
                ''
            ) AS remaining_string,
            level + 1
        FROM
            cte
        WHERE
            remaining_string IS NOT NULL
            AND remaining_string <> ''
    )
SELECT
    part AS gender,
    COUNT(*)
FROM
    cte
WHERE
    part IN ('male', 'female')
GROUP BY
    gender;

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务