牛客题霸sql入门篇之高级查询

牛客题霸sql入门篇之高级查询

4 计算函数

4.1 查询GPA最高值

4.1.1 题目内容

牛客题霸sql入门篇之高级查询_第1张图片

4.1.2 示例代码

SELECT gpa
FROM user_profile
WHERE university='复旦大学'
ORDER BY gpa desc
limit 1;
-- LIMIT 初始位置,记录数 一个参数就是记录数

4.1.3 运行结果

牛客题霸sql入门篇之高级查询_第2张图片

4.1.4 考察知识点

LIMIT 初始位置,记录数 只有一个参数,就代表其是记录数
初始位置从0开始

4.2 计算男生人数以及平均GPA

4.2.1 题目内容

牛客题霸sql入门篇之高级查询_第3张图片

4.2.2 示例代码

SELECT count(*) male_num,avg(gpa) avg_gpa
FROM user_profile
GROUP BY gender
HAVING gender='male'

4.2.3 运行结果

牛客题霸sql入门篇之高级查询_第4张图片

4.2.4 考察知识点

group by 是分组关键字
having是对分组后的东西进行筛选

5 分组查询

5.1 分组计算练习题

5.1.1 题目内容

牛客题霸sql入门篇之高级查询_第5张图片

5.1.2 示例代码

SELECT gender,university,count(*) user_num,avg(active_days_within_30) avg_active_day,avg(question_cnt) avg_question_cnt
FROM user_profile
GROUP BY university,gender;

5.1.3 运行结果

牛客题霸sql入门篇之高级查询_第6张图片

5.1.4 考察知识点

group by 分组字段1,分组字段2;
意思是先按照分组字段1分组,在对已经分好的组里面里面按照分组字段2进行分组

5.2 分组过滤练习题

5.2.1 题目内容

牛客题霸sql入门篇之高级查询_第7张图片

5.2.2 示例代码

SELECT university,avg(question_cnt) avg_question_cnt,avg(answer_cnt) avg_answer_cnt
FROM user_profile
GROUP BY university
HAVING avg(question_cnt)<5 OR avg(answer_cnt)<20;

5.2.3 运行结果

牛客题霸sql入门篇之高级查询_第8张图片

5.2.4 考察知识点

对于使用的了函数时,不给别名时,列名默认就是原来的名字

5.3 分组排序练习题

5.3.1 题目内容

牛客题霸sql入门篇之高级查询_第9张图片

5.3.2 示例代码

SELECT university,avg(question_cnt) avg_question_cnt
FROM user_profile
GROUP BY university
ORDER BY avg_question_cnt asc;

5.3.3 运行结果

牛客题霸sql入门篇之高级查询_第10张图片

5.3.4 考察知识点

ORDEY BY 子句里面是可以使用SELECT 子句中的别名的
SQL语句执行顺序: FROM 子句➡WHERE子句➡ GROUP BY子句➡ HAVING子句➡SELECT子句➡ORDER BY 子句

你可能感兴趣的:(MySQL学习,牛客题库之sql入门篇,mysql,牛客题霸,sql入门,高级查询)