首页 > 技术文章 > 分组查询以及where和having的区别

304979850w 2020-05-06 18:10 原文

分组查询

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 字句用来从分组的结果中筛选行

推荐阅读