题意解读

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

  • 每个性别:按性别进行分组,使用 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