2024-11 小猿搜题 入门

我发誓:每一道题目都不超过如下知识点。

如果超过了,就让凤姐和乔碧萝蹂躏我一百次。

SQL跟初中数学一样,记忆概念、用法是没卵用的。

能灵活应用才是王道。

====================================================================================================

任务:找出 student_id735011 的学生的语文成绩的最高分、最低分和平均分。

====================================================================================================

GROUP BY 知识点

1. 基本用法

  • GROUP BY column: 将结果集按照一个或多个列进行分组。
    • 示例:SELECT class_code, COUNT(student_id) FROM students GROUP BY class_code; 查找每个班级的学生人数。

2. 多列分组

  • GROUP BY column1, column2, ...: 按多个列进行分组。
    • 示例:SELECT grade_code, class_code, COUNT(student_id) FROM students GROUP BY grade_code, class_code; 查找每个年级和班级的学生人数。

3. 聚合函数

  • 常用聚合函数:
    • COUNT(column): 计算某列的行数。
    • SUM(column): 计算某列的总和。
    • AVG(column): 计算某列的平均值。
    • MIN(column): 找出某列的最小值。
    • MAX(column): 找出某列的最大值。
    • 示例:SELECT class_code, AVG(score) FROM scores GROUP BY class_code; 查找每个班级的平均分数。

4. HAVING 子句

  • HAVING condition: 在分组后的结果中应用条件过滤。
    • 示例:SELECT class_code, COUNT(student_id) FROM students GROUP BY class_code HAVING COUNT(student_id) > 10; 查找学生人数超过10人的班级。

5. 结合 ORDER BY

  • ORDER BY column: 对分组后的结果进行排序。
    • 示例:SELECT class_code, COUNT(student_id) FROM students GROUP BY class_code ORDER BY COUNT(student_id) DESC; 查找每个班级的学生人数,并按学生人数降序排列。

6. 注意事项

  • 选择列的限制:
    • 在 SELECT 子句中,除了聚合函数外,只能选择出现在 GROUP BY 子句中的列。
    • 示例:SELECT class_code, COUNT(student_id) FROM students GROUP BY class_code; 是有效的。
    • 示例:SELECT name, class_code, COUNT(student_id) FROM students GROUP BY class_code; 是无效的,因为 name 列不在 GROUP BY 子句中。

经典-学生表课程表 Week40打卡 and max min avg

students,学生表

student_id name class_code grade_code birth_date residence gender
100611 姜建华 C219 S3 2009-01-15 城镇 m
102890 韩辉 C223 S3 2009-10-26 农村 m
105684 李丽丽 C219 S3 2009-03-28 城镇 m
110591 李华 C223 S1 2008-05-31 农村 m
110611 王桂珍 C218 S3 2008-06-04 城镇 m

scores,成绩表

分数可能为Null

student_id subject score exam_date
358575 生物 29 2024-06-30
735011 语文 37 2024-03-30
597305 历史 67 2024-03-30
921856 数学 76 2024-04-27
455713 化学 77 2024-06-30

teachers,教师表

如第一行,赵娇娇教学C218、C219、C217三个班级的语文,是C217班的班主任

teacher_id name subject class_code head_teacher degree graduate_date(毕业日期) enter_date(入校日期) gender qualification(职称) fir_degr(第一学历) mst_degr(研究生学历)
t001 赵娇娇 语文 C218C219C217 C217 master 2010-06-30 2010-07-30 f Senior 北京大学 北京大学
t002 任伊乐 语文 C220C221C222C223C224 C220 master 2010-06-30 2010-07-30 f Senior 北京大学 清华大学
t003 李敏 数学 C218C219C217 C218 master 1994-06-30 1994-07-30 f Senior 北京大学 复旦大学
t004 吕敏 数学 C220C221C222 C221 phd 1995-06-30 1995-07-30 f Senior 北京大学 清华大学
t005 陈佳蔬 数学 C223C224 C223 master 2010-06-30 2010-07-30 f null 北京大学 北京大学

university,大学信息表 

name is_985 times_rnk(泰晤士2024全球排名)
King's College London 0 34
National University of Singapore,NUS 0 24
Singapore Polytechnic 0 null
上海交通大学 1 113
北京大学 1 16

max_score min_score avg_score
72 37 53.2500

ID193 GROUP BY-各科目最高分、最低分
入门 group by max min 经典-学生表课程表 小猿搜题
ID196 聚合函数-比较两位同学的数学成绩
入门 group by max min avg 经典-学生表课程表 小猿搜题
ID244 统计特定行业内的公司名长度分布  
中等 group by max min avg length 字符串处理 聚合函数 股市浅探 同花顺证券
ID368 哈啰出行(一)用户骑行时长分析  
简单 group by max min avg count 时间日期 聚合函数 打车出行漏斗分析 哈啰出行
ID634 用户骑行时长分析  
简单 group by max min avg count 时间日期 聚合函数 打车出行漏斗分析 哈啰出行

 点击下方空白区域即可查看参考答案

MySQL 8.0

00:00