数据库中,where和having的区别

1.where后面不能跟聚合函数,因为where执行顺序大于聚合函数

2.

   2.1  where用于初始表中筛选查询,它是一个约束声明,用于约束数据,在返回结果集之前起作用。

   2.2  group by 先获取select查询的数据结果,然后从每组中取出一个指定字段或者表达式的值。

3.执行顺序 : where  >group by > having

   3.1  having补充:having后面的字段必须在select列表中出现过才可以使用。oracle数据库除外。

   3.2  having和where都可以满足条件查询。

   3.3  having子句限制的是组,不是行。where中不能使用聚合函数,但是having中可以使用。

   3.4  当加上其他sql时候,S-F-W-F-H-O组合

    注:       select >  where > group by > having > order by   顺序不可改变

 

################################################################################

GROUP BY 是分组查询, 一般 GROUP BY 是和聚合函数配合使用

group by 有一个原则,就是 select 后面的所有列中,没有使用聚合函数的列,必须出现在 group by 后面(重要)

where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。

having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having 条件显示特定的组,也可以使用多个分组标准进行分组

################################################################################

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值