一、汇总分析
汇总函数:
- count:求某列的行数
- sum:对某列数据求和
- avg:求某列数据的平均值
- max:求某列数据的最大值
- min:求某列数据的最小值
- 练习
二、分组
- group by
- 练习
三、对分组结果指定条件
- having 对于分组之后的数据进行指定条件
- 练习
四、用sql解决业务问题
- 将需求写成通俗易懂的话
- 写出分析思路
- 写出相应的sql子句
Q1.如何计算每门课程的平均成绩,并且平均成绩大于等于80分
分析思路:
- select 查询结果(每门课的课程号:分组,平均成绩:avg(成绩))
- from 从哪张表中查找数据(score表)
- where 查询条件(无)
- group by 分组(按照课程号分组)
- having 对分组结果指定条件(平均成绩>=80)
写出相应的sql子句:
五、对查询结果排序
order by 子句:对查询结果排序
desc:降序 asc:升序
- 在select子句后运行
- 指定多个顺序排名:从左到右按顺序排列,从第一个列名开始,若遇到相同数值,则从第二列列名还是排序,以此类推。
- 空值(null)的排序:空值会在查询结果的开头显示,方便查找空值时操作
- 从查询结果中取出指定行:limit
- 练习
六、如何看懂报错信息
常见错误:
- 在group by中使用了select里的别名
- 在where中使用聚合函数:例如直接使用求和、计数等函数
- 字符串类型的数字:存放数据时将数据类型设置为字符串,而数值类型的排序和字符串类型的排序是不一致的