什么是分组查询?
在实际应用中,可能有这样的需求,需要先进行分组,然后对每一组数据进行操作这个时候需要使用分组查询
语法:
select
...
from
...
group by;
关键字组合,看一下他们的执行顺序
select
...
from
...
where
...
group by
...
order by
...
以上关键字的顺序不能颠倒
执行顺序:
1.from
2.where
3.group by
4.select
5.order by
为什么分组函数不能直接使用在where后面?
select id,name,age from info where age > min(age);//报错
因为分组函数在使用的时候必须先分组之后才能使用
where执行的时候还没有分组,所以where后面不能出现分组函数
select sum(age) from info;
为什么这个没有分组可以用?
因为select在group by后面执行

重点结论:
在一条select语句当中,如果有group by语句的话,
select后面只能跟:参加分组的字段,以及分组函数
其他的一律不能跟


使用having可以对分完组之后的数据近一步过滤,having不能单独使用,having不能代替where,having必须和group by联合使用

总结:
select
...
from
...
where
...
group by
...
having
...
order by;
以上关键字只能按照这个顺序写,不能颠倒
执行顺序:
1.from
2.where
3.group by
4.having
5.select
6.order by
从某张表中查询数据,
先经过where条件筛选出有价值的数据
对这些有价值的数据进行分组
分组之后可以使用having继续筛选
select查询出来
最后排序输出

