21天好习惯第一期—14

本文介绍了如何使用SQL的IF/CASE函数计算25岁以上和以下用户数量,以及如何运用substring_index()统计每种性别的人数。通过实例展示了如何在`user_profile`和`user_submit`表中应用这些函数获取所需数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

牛客刷题SQL

1.SQL26 计算25岁以上和以下的用户数量

题解:要进行这道题的查询要用到 IfCase 函数,在此就简单讲述以下 ifCase 函数的基本用法。

IF(expr1,expr2,expr3)

expr1 是个判断语句如果expr1=TRUE ,则 IF()的返回值为expr2; 否则返回值则为 expr3。IF() 的返回值为数字值或字符串值。

Case语句有两种形式:第一种评估一个或多个条件,并返回第一个符合条件的结果。 如果没有条件是符合的,则返回ELSE子句部分的结果,如果没有ELSE部分,则返回NULL:

CASE
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    WHEN conditionN THEN resultN
    ELSE result
END;

 AC代码如下:

select if(age<25 or age is null,"25岁以下","25岁及以上") age_cut,count(*) number
from user_profile
group by age_cut
select case when age>=25 then '25岁及以上' else '25岁以下' end age_cut,count(*) number
from user_profile
group by age_cut

2.SQL30 统计每种性别的人数 

题解:查询这道题目要用到substring_index()函数

substring_index()函数作用:用来截取字符串的

substring_index(str , dlm , cnt)

str:要处理的字符串

dlm:分隔符

cnt:计数

AC代码如下:

select  SUBSTRING_INDEX(profile,',',-1) gender,count(device_id) number
from user_submit
group by gender;

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值