题意明确:
统计每个性别的用户分别有多少参赛者
问题分解:
-
限定条件:无;
-
每个性别:按性别分组group by gender,但是没有gender字段,需要从profile字段截取,按字符,分割后取出即可。可使用substring_index函数可以按特定字符串截取源字符串。
substring_index(FIELD, sep, n)可以将字段FIELD按照sep分隔:
(1).当n大于0时取第n个分隔符(n从1开始)左边的全部内容;
(2).当n小于0时取倒数第n个分隔符(n从-1开始)右边的全部内容;
因此,本题可以直接用
substring_index(profile, ',', -1)
取出性别。 附:substring_index函数解析 -
多少参赛者:计数统计,count(device_id)
细节问题:
- 表头重命名:as
完整代码:
select
substring_index(profile, ',', -1) as gender,
count(device_id) as number
from user_submit
group by gender