前言:
现在看官们对“mysql求平均分”大概比较关切,兄弟们都想要剖析一些“mysql求平均分”的相关文章。那么小编在网摘上搜集了一些关于“mysql求平均分””的相关知识,希望你们能喜欢,朋友们快快来了解一下吧!一、表名和字段
–1. 学生表 student (s_id,s_name,s_birth,s_sex) –学生编号,学生姓名,出生年月,学生性别
–2. 课程表 course (c_id,c_name,t_id) –课程编号,课程名称,教师编号
–3. 教师表 teacher (t_id,t_name) –教师编号,教师姓名
–4. 成绩表 score (s_id,c_id,s_score) –学生编号,课程编号,分数
具体详情看 Python 之 MySql 每日一练 00
二、Mysql 题目
查询平均成绩小于 60 分的同学的学生编号和学生姓名和平均成绩(包括有成绩的和无成绩的)
三、Mysql 分析
1、说到平均成绩,我们想到聚合函数 AVG (col)
>>> 聚合函数扩展
● AVG (col) 返回指定列的平均值
● COUNT (col) 返回指定列中非 NULL 值的个数
● MIN (col) 返回指定列的最小值
● MAX (col) 返回指定列的最大值
● SUM (col) 返回指定列的所有值之和
● GROUP_CONCAT (col) 返回由属于一组的列值连接组合而成的结果
2、由题意可知,需要用到分组,来展示学生编号、姓名和平均成绩
常见的搭配:group by ... having
● 位置
从 sql 语句上而言,where 是写在 group by 前的,而 having 是在 group by 后的
● where 和 having 的区别
where 是分组前再过滤数据
having 是分组后再过滤数据
3、由于要包括有成绩的和无成绩的,需要用 union 合并 group by 的数据
union 会去除重复结果列 ,如果不想去重可以用 union all。
四、Mysql 方案
● sql 语句:
● sql 结果:
>>>Python 之 MySql 每日一练 03
标签: #mysql求平均分