我觉得今天我写的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