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

统计每种性别的人数

http://www.nowcoder.com/practice/f04189f92f8d4f6fa0f383d413af7cb8

题意明确:

统计每个性别的用户分别有多少参赛者


问题分解:

  • 限定条件:无;

  • 每个性别:按性别分组group by gender,但是没有gender字段,需要从profile字段截取,按字符,分割后取出即可。可使用substring_index函数可以按特定字符串截取源字符串。

    substring_index(FIELD, sep, n)可以将字段FIELD按照sep分隔:

    (1).当n大于0时取第n个分隔符(n从1开始)左边的全部内容;

    (2).当n小于0时取倒数第n个分隔符(n从-1开始)右边的全部内容;

    因此,本题可以直接用substring_index(profile, ',', -1)取出性别。 附:substring_index函数解析

  • 多少参赛者:计数统计,count(device_id)


细节问题:

  • 表头重命名:as

完整代码:

select
    substring_index(profile, ',', -1) as gender,
    count(device_id) as number
from user_submit
group by gender
全部评论
什么是前什么是后,建议使用左右来描述不容易有误解
4 回复 分享
发布于 2021-12-20 10:14
因为做了分割相当于。在groupby。之前了。所以可以再次分组
2 回复 分享
发布于 2022-02-01 23:58
复制代码显示错误
1 回复 分享
发布于 2023-09-28 08:30 天津
这里有一点不太明白,按着SQL语句的执行顺序,应该是from 然后group by 此时还没有执行select 语句,所以并未产生gender 字段,为什么仍然可以作为分组依据呢?
1 回复 分享
发布于 2021-12-10 16:33
select substring_index(profile, ',', -1) gender, count(substring_index(profile, ',', -1)) from user_submit group by gender; 这样也行吧
点赞 回复 分享
发布于 2024-09-09 23:00 上海

相关推荐

点赞 评论 收藏
分享
喜欢核冬天的哈基米很想上市:会爆NullPointerException的
点赞 评论 收藏
分享
评论
118
25
分享

创作者周榜

更多
牛客网
牛客企业服务