21天好习惯第一期—14

牛客刷题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;

21天好习惯第一期—14

 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:计数

21天好习惯第一期—14

AC代码如下:

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

 

 

上一篇:GNSS数据的弱点


下一篇:Mybatis---动态查询(choose,when,otherwise),类似java的 switch 效果差不多