select case when age >= 25 then "25岁及以上" else "25岁以下" end as age_cut , count(*) as number from user_profile group by case when age >= 25 then "25岁及以上" else "25岁以下" end -- mysql可以直接在groupby后面使用别名。
这个题非常明显的是想考察case when 的用法,由于NULL被归到25岁以下,所以需要先判断 25岁以上的,剩下的就是25岁以下的。
难点在于,没有学过的话,可能不会想到case when 还可以参与分组,放到
group by 后面