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

统计每种性别的人数

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

SELECT
    gender,
    COUNT( device_id) AS number
FROM (
    SELECT
        device_id,
        -- 提取最后一个逗号之后的内容作为性别
        SUBSTRING_INDEX(profile, ',', -1) AS gender
    FROM user_submit
) AS tmp
GROUP BY gender
ORDER BY CASE gender WHEN 'male' THEN 1 WHEN 'female' THEN 2 END
  • SUBSTRING_INDEX(profile, ',', -1):对profile字符串按“,”分割后取第-1个(最后一个部分)
  • COUNT(distinct device_id) 加上distinct报错
  • ORDER BY CASE gender WHEN 'male' THEN 1 WHEN 'female' THEN 2 END: groupby是按字符编码排序,要指定排序
select
gender,
count( device_id) as number
from(
select 
device_id,
case 
when right(profile,5) = ',male' then 'male' 
when right(profile,6) = 'female' then 'female' 
else 'unknown' 
end as gender
from user_submit
) as tmp
group by gender
ORDER BY CASE gender WHEN 'male' THEN 1 WHEN 'female' THEN 2 ENd
  • right(profile,5):取profile字符串的后5个字符
全部评论

相关推荐

二十岁的编程男神王大...:读博吧兄弟,你这绩点太好了,何必转码,另外哈哈哈真见到有括号标出来985的,这个不标注也知道吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务