分组查询
group by是分组,分组不是去重(不是去掉重复的部分),而是分组
将查询结果按一个或多个进行分组,字段值相同的为一组
sql语句执行顺序:
1.from
2.where
3.group by
4.having
5.根据select关键字之后的要显示的字段,进行结果集显示
6.order by 对最终的结果进行排序 (ase从高到低,desc 从低到高)
where 和having的区别
where是对源数据进行筛选的,也就是对from后面的表 进行筛选
那为什么不能使用where
1.需求是对分组之后的数据集进行筛选,where 只针对数据表原始数据筛选
2.where关键字显然只能出现一次,而且根据查询的顺序,是先执行where条件筛选后得到的结果集,在进行group by分组
区别
1.where 字句用来筛选from 字句中指定操作所产生的行。
2.group by字句用来分组where 字句的输出。
3.having 字句用来从分组的结果中筛选行