SQL刷题 | 字符串截取

题目详情

题目:现在运营举办了一场比赛,收到了一些参赛申请,表数据记录形式如下所示,现在运营想要统计每个性别的用户分别有多少参赛者,请取出相应结果
示例:user_submit
示例图
根据示例,你的查询应返回以下结果:

gendernumber
male2
female3

解题

  1. 暴力解决【case when】
    1️⃣结果表中需要gendernumber。表头需要as来统一命名;
    2️⃣性别分类profile中属于字符串,我们可以使用模糊查找like的方式对malefemale进行字段值“变更”。
    ⭕️这里注意一定加上前面的逗号,,不加逗号的话将会全部分为male,因为所有female前面两个字母fe也会被%给取代。
    一定使用group by gender进行性别分类。
    执行顺序是先group by → \rightarrow where → \rightarrow select【即select一定是在分组之后进行】
    3️⃣ 计数count(device_id)

    select 
    case when profile like '%,male' then 'male' 
    when profile like '%,female' then 'female' end as gender,
    count(device_id) 
    from user_submit group by gender;
    
  2. 字符串截取函数substring_index

    substring_index(str,delim,count)
    //str:截取字符串
    //delim:分隔符[, . / _ ]
    //count:计数【正数正着数,负数倒着数】
    

    可以理解成Python里的split函数,拆分后会被分为好几个部分放在一个列表里。

    SELECT SUBSTRING_INDEX(profile,",",-1) gender,COUNT(*) number
    FROM user_submit 
    GROUP BY gender;
    

题目详情

编写 SQL 语句,返回顾客 ID(cust_id)、顾客名称(cust_name)和登录名(user_login),其中登录名全部为大写字母,并由顾客联系人的前两个字符(cust_contact)和其所在城市的前三个字符(cust_city)组成。提示:需要使用函数、拼接和别名。

解题

  • substring(str, start, length)

    substring(str,start,length)
    //str:截取字符串
    //start:起始位置
    //length:截取子串长度
    

    从任意位置开始截取子串

  • left(str,length)

    left(str,length)
    //str:截取字符串
    //length:左起数,子串长度
    

    左边开始截取子串

  • concat(str1,str2)
    类似于Python的字符串拼接方法,不多加赘述。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值