1.汇总分析内容大纲
-什么是函数?
-常用的汇总函数有哪些?
-练习: 汇总分析
2.对数据分组
-分组背后的分析方法是什么?
-如何对数据分组?
-练习:常用面试题
3.对分组结果指定条件
-如何为分组结果指定条件?
-理解SQL运行顺序
-练习常见面试题
4.如何用SQL解决业务问题?
-业务问题解决套路
-如何计算每门课程的平均成绩
-练习:每门课程的平均成绩
5.如何对查询结果排序?
-升序
-降序
-指定多个排序列名
-空值如何排序
-练习:常见面试题
6.如何看懂报错信息
汇总函数 count sum avg max min
1汇总分析
面试题·查询课程编号为"0002"的总成绩
面试题·查询选了课程的学生人数
2.分组
sql分组:group by
分析方法→数据分组→应用函数→组合结果
③select 性别,②count(*)from students ①group by 性别;
SQL运行顺序
④select 性别,count(*)
①from student
②where 出生日期 > '1990-01-01'
③group by 性别;
1)先运行子句 ;2)select子句 五月天《干杯》
练习:分组
面试题·查询各科成绩最高和最低的分
面试题·查询每门课程被选修的学生数
面试题·查询男生和女生人数
3.对分组结果指定条件——having
where子句只能指定行的条件,
只取出男生组 select 性别,count(*)from student group by 性别 having count(*)>1;
select 查询结果
from 从哪张表中查找数据
where 查询条件
group by 分组
having 对分组结果指定条件;
练习:分组结果的条件
面试题·查询平均成绩大于60分学生的学号和平均成绩
(计算每个学生的平均成绩,对分组结果指定条件)
面试题·查询至少选修两门课程的学生学号
(1、每个选修的课程数据按学号分组,对分组结果指定条件)
面试题·查询同名同姓学生名单并统计同名人数
(1、查找出姓名相同的学生人数)
4.如何用sql解决业务问题
1.翻译成大白话
2.写出分析思路
3.写出对应的sql子句
如何计算各科的平均成绩
如何计算每门课程的平均成绩
select 查询结果【每门课的课程号:分组,平均成绩:avg(成绩)】
from 从哪张表中查询数据【成绩表:score】
where 查询条件 【没有】
group by 分组【每门课程:按课程号分组】
having 对分组结果指定条件【没有】;
select 课程号,avg(成绩)
from score
group by 课程号;
如何计算每门课程的平均成绩,并且平均成绩大于等于80分
select 查询结果【每门课程的课程号:分组,平均成绩:avg(成绩)】
from 从哪张表中查找数据【成绩表:score】
where 查询条件【没有】
group by 分组【每门课程:按课程号分组】
having 对分组结果指定条件【平均成绩>=80】;
select 课程号,avg(成绩)
from score
group by 课程号
having avg(成绩)>=80;
练习:每门课程的平均成绩
如何计算每门课程的平均成绩并且平均成绩大于等于80分 分组、汇总、条件
5.对查询结果排序
对查询结果排序 order by
降序(desc):从大到小
降序(desc):从大到小
升序(asc):从小到大
sql运行顺序
1)先运行篮筐里的子句
2)select子句
3)最后运行红框里的子句
select查询结果
from 从哪张表中查找数据
where查询条件
group by 分组
having 对分组结果指定条件
order by 对查询结果排序
指定多个排序列名
select * from score orderby 成绩 asc,课程号 desc;
空值(null)的排序
select * from teacher order by 教师姓名;
从查询结果中取出指定行:limit
--从查询结果中取出前上述