来源:雪球App,作者: 猴子数据分析,(https://xueqiu.com/1350621016/152341098)
已知有如下4张表:
学生表:student(学号,学生姓名,出生年月,性别)
成绩表:score(学号,课程号,成绩)
课程表:course(课程号,课程名称,教师号)
教师表:teacher(教师号,教师姓名)
1.汇总分析
-查询学生的总成绩并进行排名
/*
【知识点】分组查询
分析思路
select 查询结果 [总成绩:sum(成绩), 学号]
from 从哪张表中查找数据 [成绩表score]
where 查询条件 [没有]
group by 分组 [学生的总成绩:按照每个学生学号进行分组]
order by 排序 [按照总成绩进行排序:sum(成绩)];
/*
select 学号 ,sum(成绩) from score
group by 学号
order by sum(成绩) ;
-查询平均成绩大于60分的学生的学号和平均成绩
/*
【知识点】分组+条件
分析思路
select 查询结果 [学号, 平均成绩: avg(成绩)]
from 从哪张表中查找数据 [成绩表score]
where 查询条件 [没有]
group by 分组 [学号]
having 分组条件 [平均成绩大于60分:avg(成绩 ) >60]
order by 排序 [没有];
/*
select 学号 ,avg(成绩) from score
group by 学号
having avg(成绩 ) >60
2.复杂查询
-查询各学生的年龄(精确到月份)
/*
【知识点】时间格式转化
*/
select 学号 ,timestampdiff(month ,出生日期 ,now())/12
from student ;
-查询本月过生日的学生
select *
from student
where month (出生日期 ) = month(now())+2;
.多表查询
-检索"0001"课程分数小于60,按分数降序排列的学生信息
思路如图: