0


【牛客刷题--SQL篇】必会的常用函数之条件函数SQL26计算25岁以上和以下的用户数量(多种写法)

💖个人主页:@与自己作战
💯作者简介:CSDN@博客专家CSDN@大数据领域优质创作者CSDN@内容合伙人阿里云@专家博主
💞牛客刷题系列篇:【SQL篇】】【Python篇】【Java篇】
📌推荐刷题网站注册地址:【牛客网–SQL篇】
💘推荐理由:从0-1起步,循序渐进
🆘希望大佬们多多支持,携手共进
📝 如果文章对你有帮助的话,欢迎评论💬点赞👍收藏📂加关注
如需要支持请私信我,💯必支持
👩‍👩‍👦‍👦网址注册地址:【牛客网–注册地址】👩‍👩‍👦‍👦

在这里插入图片描述

文章目录

一、必会的常用函数

1、条件函数

1.1、SQL26 计算25岁以上和以下的用户数量

描述
题目:现在运营想要将用户划分为25岁以下和25岁及以上两个年龄段,分别查看这两个年龄段用户数量
本题注意:age为null 也记为 25岁以下
在这里插入图片描述

  • 示例1

输入
drop table if exists

user_profile

;
drop table if exists

question_practice_detail

;
CREATE TABLE

user_profile

(

id

int NOT NULL,

device_id

int NOT NULL,

gender

varchar(14) NOT NULL,

age

int ,

university

varchar(32) NOT NULL,

gpa

float,

active_days_within_30

int ,

question_cnt

int ,

answer_cnt

int
);
CREATE TABLE

question_practice_detail

(

id

int NOT NULL,

device_id

int NOT NULL,

question_id

int NOT NULL,

result

varchar(32) NOT NULL
);
CREATE TABLE

question_detail

(

id

int NOT NULL,

question_id

int NOT NULL,

difficult_level

varchar(32) NOT NULL
);

INSERT INTO user_profile VALUES(1,2138,‘male’,21,‘北京大学’,3.4,7,2,12);
INSERT INTO user_profile VALUES(2,3214,‘male’,null,‘复旦大学’,4.0,15,5,25);
INSERT INTO user_profile VALUES(3,6543,‘female’,20,‘北京大学’,3.2,12,3,30);
INSERT INTO user_profile VALUES(4,2315,‘female’,23,‘浙江大学’,3.6,5,1,2);
INSERT INTO user_profile VALUES(5,5432,‘male’,25,‘山东大学’,3.8,20,15,70);
INSERT INTO user_profile VALUES(6,2131,‘male’,28,‘山东大学’,3.3,15,7,13);
INSERT INTO user_profile VALUES(7,4321,‘male’,28,‘复旦大学’,3.6,9,6,52);
INSERT INTO question_practice_detail VALUES(1,2138,111,‘wrong’);
INSERT INTO question_practice_detail VALUES(2,3214,112,‘wrong’);
INSERT INTO question_practice_detail VALUES(3,3214,113,‘wrong’);
INSERT INTO question_practice_detail VALUES(4,6543,111,‘right’);
INSERT INTO question_practice_detail VALUES(5,2315,115,‘right’);
INSERT INTO question_practice_detail VALUES(6,2315,116,‘right’);
INSERT INTO question_practice_detail VALUES(7,2315,117,‘wrong’);
INSERT INTO question_practice_detail VALUES(8,5432,117,‘wrong’);
INSERT INTO question_practice_detail VALUES(9,5432,112,‘wrong’);
INSERT INTO question_practice_detail VALUES(10,2131,113,‘right’);
INSERT INTO question_practice_detail VALUES(11,5432,113,‘wrong’);
INSERT INTO question_practice_detail VALUES(12,2315,115,‘right’);
INSERT INTO question_practice_detail VALUES(13,2315,116,‘right’);
INSERT INTO question_practice_detail VALUES(14,2315,117,‘wrong’);
INSERT INTO question_practice_detail VALUES(15,5432,117,‘wrong’);
INSERT INTO question_practice_detail VALUES(16,5432,112,‘wrong’);
INSERT INTO question_practice_detail VALUES(17,2131,113,‘right’);
INSERT INTO question_practice_detail VALUES(18,5432,113,‘wrong’);
INSERT INTO question_practice_detail VALUES(19,2315,117,‘wrong’);
INSERT INTO question_practice_detail VALUES(20,5432,117,‘wrong’);
INSERT INTO question_practice_detail VALUES(21,5432,112,‘wrong’);
INSERT INTO question_practice_detail VALUES(22,2131,113,‘right’);
INSERT INTO question_practice_detail VALUES(23,5432,113,‘wrong’);
INSERT INTO question_detail VALUES(1,111,‘hard’);
INSERT INTO question_detail VALUES(2,112,‘medium’);
INSERT INTO question_detail VALUES(3,113,‘easy’);
INSERT INTO question_detail VALUES(4,115,‘easy’);
INSERT INTO question_detail VALUES(5,116,‘medium’);
INSERT INTO question_detail VALUES(6,117,‘easy’);

输出
25岁以下|4
25岁及以上|3

输入:
droptableifexists`user_profile`;droptableifexists`question_practice_detail`;CREATETABLE`user_profile`(`id`intNOTNULL,`device_id`intNOTNULL,`gender`varchar(14)NOTNULL,`age`int,`university`varchar(32)NOTNULL,`gpa`float,`active_days_within_30`int,`question_cnt`int,`answer_cnt`int);CREATETABLE`question_practice_detail`(`id`intNOTNULL,`device_id`intNOTNULL,`question_id`intNOTNULL,`result`varchar(32)NOTNULL);CREATETABLE`question_detail`(`id`intNOTNULL,`question_id`intNOTNULL,`difficult_level`varchar(32)NOTNULL);INSERTINTO user_profile VALUES(1,2138,'male',21,'北京大学',3.4,7,2,12);INSERTINTO user_profile VALUES(2,3214,'male',null,'复旦大学',4.0,15,5,25);INSERTINTO user_profile VALUES(3,6543,'female',20,'北京大学',3.2,12,3,30);INSERTINTO user_profile VALUES(4,2315,'female',23,'浙江大学',3.6,5,1,2);INSERTINTO user_profile VALUES(5,5432,'male',25,'山东大学',3.8,20,15,70);INSERTINTO user_profile VALUES(6,2131,'male',28,'山东大学',3.3,15,7,13);INSERTINTO user_profile VALUES(7,4321,'male',28,'复旦大学',3.6,9,6,52);INSERTINTO question_practice_detail VALUES(1,2138,111,'wrong');INSERTINTO question_practice_detail VALUES(2,3214,112,'wrong');INSERTINTO question_practice_detail VALUES(3,3214,113,'wrong');INSERTINTO question_practice_detail VALUES(4,6543,111,'right');INSERTINTO question_practice_detail VALUES(5,2315,115,'right');INSERTINTO question_practice_detail VALUES(6,2315,116,'right');INSERTINTO question_practice_detail VALUES(7,2315,117,'wrong');INSERTINTO question_practice_detail VALUES(8,5432,117,'wrong');INSERTINTO question_practice_detail VALUES(9,5432,112,'wrong');INSERTINTO question_practice_detail VALUES(10,2131,113,'right');INSERTINTO question_practice_detail VALUES(11,5432,113,'wrong');INSERTINTO question_practice_detail VALUES(12,2315,115,'right');INSERTINTO question_practice_detail VALUES(13,2315,116,'right');INSERTINTO question_practice_detail VALUES(14,2315,117,'wrong');INSERTINTO question_practice_detail VALUES(15,5432,117,'wrong');INSERTINTO question_practice_detail VALUES(16,5432,112,'wrong');INSERTINTO question_practice_detail VALUES(17,2131,113,'right');INSERTINTO question_practice_detail VALUES(18,5432,113,'wrong');INSERTINTO question_practice_detail VALUES(19,2315,117,'wrong');INSERTINTO question_practice_detail VALUES(20,5432,117,'wrong');INSERTINTO question_practice_detail VALUES(21,5432,112,'wrong');INSERTINTO question_practice_detail VALUES(22,2131,113,'right');INSERTINTO question_practice_detail VALUES(23,5432,113,'wrong');INSERTINTO question_detail VALUES(1,111,'hard');INSERTINTO question_detail VALUES(2,112,'medium');INSERTINTO question_detail VALUES(3,113,'easy');INSERTINTO question_detail VALUES(4,115,'easy');INSERTINTO question_detail VALUES(5,116,'medium');INSERTINTO question_detail VALUES(6,117,'easy');

输出:
25岁以下|425岁及以上|3

在这里插入图片描述
在这里插入图片描述

1.1.1、SQL语句(第一种写法)

select
if(age >= 25, ‘25岁及以上’,‘25岁以下’) age_cut,
count(1) number
from
user_profile
group by
age_cut

selectif(age >=25,'25岁及以上','25岁以下') age_cut,count(1) number
from
  user_profile
groupby
  age_cut

在这里插入图片描述

在这里插入图片描述

1.1.2、SQL语句(第二种写法)

select
case
when age >= 25 then ‘25岁及以上’
else ‘25岁以下’
end as age_cut,
count(1) number
from
user_profile
group by
age_cut

selectcasewhen age >=25then'25岁及以上'else'25岁以下'endas age_cut,count(1) number
from
  user_profile
groupby
  age_cut

在这里插入图片描述

在这里插入图片描述

推荐刷题网站:【牛客网–SQL篇】
网址注册地址:【牛客网–注册地址】

标签: sql 数据库 mysql

本文转载自: https://blog.csdn.net/walykyy/article/details/127478799
版权归原作者 与自己作战 所有, 如有侵权,请联系我们删除。

“【牛客刷题--SQL篇】必会的常用函数之条件函数SQL26计算25岁以上和以下的用户数量(多种写法)”的评论:

还没有评论