题解 | #统计每种性别的人数#
统计每种性别的人数
http://www.nowcoder.com/practice/f04189f92f8d4f6fa0f383d413af7cb8
select SUBSTRING_INDEX(PROFILE,",",-1) as gender,COUNT(device_id)
from user_submit
group by gender
思考:看到数据类型就知道需要做字符串截取,所以考验的是用哪个函数做字符串截取的问题。这里总结了一些几个常见字符串截取函数的使用场景:
- substr(需要截取的字段名,start,end)
- start:从第几个字符开始截取
- end:到第几个字符结束
- 不写名end结束字符的话,会返回从开始到结尾的所有字符 *在这里不使用它的原因:字符太长了,要一个字符一个字符数好麻烦
- substring(需要截取的字段名,start,end)
- 区别在于end的那个位置的字符不会返回 *不用的原因和substr同
- substring_index(需要截取的字段名,"分隔符",num)
- num:为截取第几个分隔符之后的所有字符 *看到逗号两眼放光!就决定是你了!
步骤:
- 将需要的性别字段拆分出来
- 已gender作为筛选条件count同一性别下device_id的个数
tips:可以混写的原因。 因为sql的执行顺序,先select-group by-聚合函数 所以可以先取出gender这个字段,再用gender进行分组计算。