二.主要回顾常用组合查询如
order by , group by , where ,having ,group by,limit,聚合函数[例如:max(),count(),avg()等]的组合使用
1.group by (一般聚合函数是配合group by使用的)
group by主要是用来分组,如下表
image.png
使用分组查询,查询每个部门薪资最高的员工薪资
select dept,max(salary) from staff group by dept;
image.png
2.order by (常配合limit来使用)
select *from table1 order by sort ; 默认升序
select *from table1 order by sort limit 1,3;
先查询 limit 1,3 然后根据 sort字段进行升序排序
注意: limit 1,3之后的不会被排序, 查询顺序是先限制再排序,而不是先排序再做限制
image.png
select * from table1 order by sort limit 1,6;
image.png
3.常用的聚合函数
select class,min(math) from score group by class; //查询出每班数学最低分
select class,sum(math) from score group by class; //查询出每班数学总分
select class,avg(math) from score group by class; //查询出每班数学平均分
select class,count(*) from score group by class; //查询出每班学生总数
4.where 和having的用法
having 是对分组查询后对结果进行 进一步筛选
换句话说, having是在分组后过滤数据,进行展示
1).where 不能放在GROUP BY 后面
where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数比如SUM(),AVG()等,使用where条件显示特定的行。
2).having 是跟GROUP BY 连在一起用的,放在GROUP BY 后面,此时的作用相当于WHERE
having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having 条件显示特定的组,也可以使用多个分组标准进行分组。