SQL27 查看不同年龄段的用户明细

小明 2025-05-06 09:33:08 4

题目描述

题���:现在运营想要将用户划分为20岁以下,20-24岁,25岁及以上三个年龄段,分别查看不同年龄段用户的明细情况,请取出相应数据。(注:若年龄为空请返回其他。)

()

示例:user_profile

iddevice_idgenderageuniversitygpaactive_days_within_30question_cntanswer_cnt
12138male21北京大学3.47212
23214male复旦大学415525
36543female20北京大学3.212330
42315female23浙江大学3.6512
55432male25山东大学3.8201570
62131male28山东大学3.315713
74321male26复旦大学3.69652

根据示例,你的查询应返回以下结果:

()
device_idgenderage_cut
2138male20-24岁
3214male其他
6543female20-24岁
2315female20-24岁
5432male25岁及以上
2131male25岁及以上
4321male25岁及以上

分析思路

难点:

1.如何根据条件输出内容

一个条件2个结果可以使用if、case when;多个条件多个结果可以使用case when,还有if嵌套

(1)分别查看这两个年龄段用户数量

[使用]:if()或者case when;group by

求解代码

方法一

条件函数:if()

1

2

3

4

5

6

7

select

    device_id,

    gender,

    if(age =25, '25岁及以上',

            if(age between 20 and 24, '20-24岁', '其他'))) as age_cut

from user_profile

方法二

条件函数:case when

1

2

3

4

5

6

7

8

9

10

select

    device_id,

    gender,

    (case

        when age = 20 and age = 25 then '25岁及以上'

        else '其他'

    end) as age_cut

from user_profile

The End
微信