题意解读
要统计每个性别的用户分别有多少参赛者
- 每个性别:按性别进行分组,使用
group by
- 多少参赛者:统计用户人数,使用
count
细节问题
- 性别不是做为一个单独的字段进行保存,而是多个之间以逗号进行分割,保存在一个字段中
- 想到使用函数以逗号进行分割,获取需要的数据
- 函数:
SUBSTRING_INDEX(s, delimiter, number)
- s:要分割的字符串
- delimiter:以哪个符号进行分割
- number:number如果是正数,返回从左到右number个的字符串;如果number是负数,返回从右到左number的绝对值个的字符串
完整SQL
以逗号分割,从右到左第1个为性别,即为函数中为 -1
SELECT
SUBSTRING_INDEX(profile, ',',-1) gender,
count(*) number
FROM
user_submit
GROUP BY
gender