SELECT 
    '25岁以下',
    SUM(CASE WHEN age < 25 OR age IS NULL THEN 1 ELSE 0 END) number
FROM user_profile

UNION 

SELECT 
    '25岁及以上',
    SUM(CASE WHEN age >= 25 THEN 1 ELSE 0 END) number
FROM user_profile

痛定思痛,今后做一道题写一道题解,积累解题经验造福大家。希望能拿到好offer!

本题需要查询出不同年龄区间的用户数,null也是小于25

首先看示例,是两个区间的结果叠加在一起。所以第一时间想到UNION

然后看人数计算,我这里使用了CASE WHEN和计算函数,不太熟练,一直报语法错误。

最后分别查询不同区间的数量即可