mysql 用法之 统计各地区注册人数

我觉得今天我写的sql可以在博客里写上一笔了

SELECT
    register_addr 'key',
    count(user_id) 'value'
FROM
    (
        SELECT
            bi.user_id,
            (
                CASE
                WHEN LOCATE('省', bi.register_addr) > 0 THEN
                    LEFT (
                        bi.register_addr,
                        LOCATE('省', bi.register_addr) - 1
                    )
                WHEN trim(bi.register_addr) IN ('北京', '上海') THEN
                    trim(bi.register_addr)
                END
            ) AS register_addr
        FROM
            cl_user u
        LEFT JOIN cl_user_base_info bi ON u.id = bi.user_id
        WHERE
            (
                DATE_FORMAT(u.regist_time, '%Y-%m-%d') >= CONCAT(
                    DATE_FORMAT(SYSDATE(), '%Y-%m'),
                    '-01'
                )
            )
        AND (bi.register_addr != '')
    ) t
GROUP BY
    register_addr

猜你喜欢

转载自blog.csdn.net/CoreyXuu/article/details/82688982