牛客网打卡 : SQL26 计算25岁以上和以下的用户数量
select '25岁以下',count(device_id) number from user_profile where age<25 or age is null union all select '25岁及以上',count(device_id) number from user_profile where age>=25
使用联合表固然可以,但是还是属于麻烦
使用if函数,或者是使用case when end进行组合
select if(age>=25,'25岁及以上','25岁以下') as age_cut, count(device_id) number from user_profile group by age_cut
使用case when end
select (case when age>=25 then '25岁及以上' else '25岁以下' end) as age_cut, count(device_id) from user_profile group by age_cut
if(条件,结果,反面结果) (可选,as 列名)
使用case关键字进行声明:
case when 条件 then 结果 else 反面结果 end 可选,as 新列名