题目:每个性别的用户分别有多少参赛者。 问题拆解:统计两种性别有多少参赛者,首先想到的要用group up进行分组,其次就是要截取男性和女性。第一种方法可以用substring_idex函数截取字符串,截取到male和female。第二种方法就可以想到用like case when 语句,不是男性就是女性。 substring_index函数的语句 substring_index(str,delim,n) str表示字符串,delim表示截取数据的字符,n表示截取字符的位置——从左往右是1开始,从右往左就是-1开始) 因为(180cm,75kg,27,male)可以看出字符串可用逗号作为截取依据,性别是在最后所以可以从右往左截取就是-1 函数使用方法就是:substring_index(profile, ',', -1)直接带入查询语句即可。 select substring_index(profile, ',', -1) as gender, count(*) as number from user_submit group by gender 第二种方法就可以想到用like case when 语句,不是男性就是女性。 select case when profile like '%,female' then 'female' else 'male' end as gender count(*)as number from user_submit group by gender 还有另一种写法分开查询男性和女性不推荐 多此一举哈。 select case when profile like '%,male'then 'male' when profile like '%,female'then 'female' else '其他' end as gender,count(*)as number from user_submit group by gender;