SQL30 统计每种性别的人数(牛客)

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

示例:user_submit

device_idprofileblog_url
2138180cm,75kg,27,malehttp:/url/bigboy777
3214165cm,45kg,26,femalehttp:/url/kittycc
6543178cm,65kg,25,malehttp:/url/tiger
4321171cm,55kg,23,femalehttp:/url/uhksd
2131168cm,45kg,22,femalehttp:/urlsydney

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

gendernumber
male2
female3

 解题:

# 方式一:
# 1.用子查询模拟出想要的结果(将字段值用逗号进行分割)
# 2.在分组后采取COUNT函数统计数量
SELECT
    table2.profile, 
    COUNT(table2.profile) AS number
FROM
    (
        SELECT
            device_id,
            SUBSTRING_INDEX(profile, ',', -1) AS profile
        FROM
            user_submit
    ) AS table2
GROUP BY table2.profile;


# 方式二:
# 1.在分组时就进行结果分割,再采用COUNT函数统计数量
SELECT
    SUBSTRING_INDEX(profile, ',', -1) AS profile,
    COUNT(*) AS number
FROM
    user_submit
GROUP BY SUBSTRING_INDEX(profile, ',', -1);


结果:

小结:学习SUBSTRING_INDEX()函数;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值