题解 30 | #统计每种性别的人数#

【分类】:分组查询、字符串截取函数

分析思路

难点:

1.如何截取出性别的字段

如何截取出性别的字段

  • [使用]:substring_index(按照分隔符截取子字符串)
  • [使用]:like;因为性别只有2个数,不是 female 就是 male,相当于定值,如果是年龄这种连续的字段,是不定值,不能用like

扩展

前往查看:MySQL 字符串截取

最终结果

select 查询结果 [substring_index(字段) as 性别;count(设备ID) as 人数]
from 从哪张表中查询数据[user_submit]
group by 分组条件[性别]

求解代码

方法一:

使用 substring_index()

select 
    substring_index(profile, ',', -1) as gender,
    count(device_id) as number
from user_submit
group by gender

方法二:

使用 if + like

select 
    if(profile like '%fe%', 'female','male') as gender,
    count(device_id) as number
from user_submit
group by gender

方法三:

使用 case when + like

select 
    case
        when profile like '%fe%' then 'female'
        else 'male'
    end as gender,
    count(device_id) as number
from user_submit
group by gender
全部评论

相关推荐

1 1 评论
分享
牛客网
牛客企业服务