题解 | #统计每种性别的人数#
统计每种性别的人数
https://www.nowcoder.com/practice/f04189f92f8d4f6fa0f383d413af7cb8
select substring_index (profile, ',', -1) as gender, count(device_id) from user_submit group by gender
substring_index (列名, 参照物, 位置):从一个元素的字符串中提取指定位置的文字,SUBSTRING_INDEX(str, delimiter, count)
- str:需要操作的列
- delimiter:参照物,分隔符
- count:第几个参照物,正数的时候从左向右数,负数的时候从右向左数
- 返回的是一个字符串
select if (profile like '%,male', 'male', 'female') as gender, count(device_id) from user_submit group by gender
select case when profile like '%,male' then 'male' when profile like '%,female' then 'female' end gender, count(device_id) as number from user_submit group by gender
case的代码示例
SELECT column_name, CASE column_name WHEN 值 THEN result1 WHEN 值 THEN result2 ... ELSE default_result END FROM table_name;
SELECT column_name, CASE WHEN 条件 THEN result1 WHEN 条件 THEN result2 ... ELSE default_result END FROM table_name;
SELECT order_id, CASE status WHEN 'pending' THEN '待处理' WHEN 'completed' THEN '已完成' ELSE '未知状态' END FROM orders;
SELECT product_name, CASE WHEN price < 50 THEN '便宜' WHEN price BETWEEN 50 AND 100 THEN '适中' WHEN price > 100 THEN '昂贵' ELSE '未知价格' END FROM products;