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

文章讲述了如何使用SQL的if和casewhen条件函数,针对用户表(user_profile)中的年龄信息,将用户划分为20岁以下、20-24岁、25岁及以上和其他四个年龄段,并返回device_id和gender字段的数据。
摘要由CSDN通过智能技术生成

题目描述

题目:现在运营想要将用户划分为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 <20'20岁以下',

        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  then '20岁以下'

        when age >= 20 and age <= 24 then '20-24岁'

        when age >= 25 then '25岁及以上'

        else '其他'

    end) as age_cut

from user_profile

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值