第十六例:计算函数,查找GPA最高值
- 题目地址:查找GPA最高值牛客题霸牛客网 (nowcoder.com)
- 初始化数据:
droptable if exists user_profile;
CREATETABLE `user_profile` (
`id` intNOTNULL,
`device_id` intNOTNULL,
`gender` varchar(14) NOTNULL,
`age` int ,
`university` varchar(32) NOTNULL,
`gpa` float);
INSERTINTO user_profile VALUES(1,2234,'male',21,'北京大学',3.2);
INSERTINTO user_profile VALUES(2,2235,'male',null,'复旦大学',3.8);
INSERTINTO user_profile VALUES(3,2236,'female',20,'复旦大学',3.5);
INSERTINTO user_profile VALUES(4,2237,'female',23,'浙江大学',3.3);
INSERTINTO user_profile VALUES(5,2238,'male',25,'复旦大学',3.1);
INSERTINTO user_profile VALUES(6,2239,'male',25,'北京大学',3.6);
INSERTINTO user_profile VALUES(7,2240,'male',null,'清华大学',3.3);
INSERTINTO user_profile VALUES(8,2241,'female',null,'北京大学',3.7);
- 题目描述:想要知道复旦大学学生gpa最高值是多少,请你取出相应数据
- 解法1:使用函数max:select round(max(gpa),4) from user_profile where university='复旦大学';
- 解法2:使用倒序排序倒取第一位或者正排第一位:select gpa from user_profile where university='复旦大学' order by gpa desc limit 0,1;
- 解法3:使用mysql的all函数需要搭配and关键词(对于子查询返回列中的任一数值):select gpa from user_profile where university='复旦大学' and gpa >= all(select gpa from user_profile) where university = '复旦大学';
第十七例:计算函数,计算男生人数以及平均GPA
- 题目地址:计算男生人数以及平均GPA牛客题霸牛客网 (nowcoder.com)
- 初始化数据:
droptable if exists user_profile;
CREATETABLE `user_profile` (
`id` intNOTNULL,
`device_id` intNOTNULL,
`gender` varchar(14) NOTNULL,
`age` int ,
`university` varchar(32) NOTNULL,
`gpa` float);
INSERTINTO user_profile VALUES(1,2138,'male',21,'北京大学',3.4);
INSERTINTO user_profile VALUES(2,3214,'male',null,'复旦大学',4.0);
INSERTINTO user_profile VALUES(3,6543,'female',20,'北京大学',3.2);
INSERTINTO user_profile VALUES(4,2315,'female',23,'浙江大学',3.6);
INSERTINTO user_profile VALUES(5,5432,'male',25,'山东大学',3.8);
INSERTINTO user_profile VALUES(6,2131,'male',28,'北京师范大学',3.3);
- 题目描述:想看一下男性用户有多少人以及他们的平均gpa是多少
- 解法1:就两个函数,sum函数统计出总人数,avg统计平均gpa:select sum(gender='male'),avg(gpa) from user_profile where gender='male';