1.汇总分析

- 汇总函数
- count 求某列的行数


- sum 对某列数据求和
- avg 求某列数据的平均值
- max 求某列数据的最大值
- min 求某列数据的最小值
count(distinct name) 就不会计算重复值
注意:所有的汇总函数如果括号里是列名,那么计算是回排除空值null然后计算
注意:sum和avg只能对数值类型的列计算,另三个不需要
2.分组


3.对分组结果指定条件 having
select 性别,count(*)
from student
group by 性别
having count(*)>1; 对分组结果指定条件
4. 用sql解决业务问题
- 翻译成大白话
- 写出分析思路
- 最后写出对应sql子句
5. 对查询结果排序:order by
select 查询结果
from 表
where 查询条件
group by 分组
having 对分组结果指定条件
order by 对查询结果排序
- desc降序 asc升序

多列名排序:
order by 成绩 asc, 课程号 desc;
- 空值null在排序时会出现在第一行
- 从查询结果中取出指定行:limit
select *
from score
limit 2(只输出前两行)
6.如何看懂报错信息
常见错误:
- 在group by 中不能使用 select 里的别名 (group by 和 having运行时select还没运行)
- 在where中不能使用聚合函数
- 字符串类型的数字在计算最大值或者排序的时候会以字符串类型比较
SQLZOO练习记录:







注意14题知识点,
subject in ('Physics','Chemistry')返回值(0或1)会对没一个subject做一个if的判断,有返回1,没有返回0,再用order by 把这些值排序在下面
因此,返回值是0的会排在前面,返回值是1的就排在后面
(很简单的不放了,意义不大)

