SQL的having函数用法以及与where函数的区别

目录

1.having函数的语法及用法实例

(1)语法:having 即 having <聚合条件参数>

(2)用法:对聚合函数的结果进行条件限制,弥补where语句不能与聚合函数使用的缺陷。

(3)having函数的实例

①简单用法

②与where、order by排序语法结合使用

2.having与where的区别


1.having函数的语法及用法实例

(1)语法:having <criteria> 即 having <聚合条件参数>

具体查询语句:select <字段> ,aggregate_function(字段) from 表名 (where 条件) group by 字段/别名 having 聚合条件 (order by 字段 asc|desc)

参数说明:

criteria:为聚合条件,是聚合函数+字段以及比较等条件组合,比如sum(math)>90。

说明:①加上括号的语句可以选择性加,若需要限制范围条件可以用where,而having是弥补where语句不能和聚合条件使用的缺陷。

②order by语句是排序语句,desc表示降序排序,asc 是升序排序,不填则默认为升序排序。

(2)用法:对聚合函数的结果进行条件限制,弥补where语句不能与聚合函数使用的缺陷。

(3)having函数的实例

①简单用法

例1:现有一个产品销量表goods_data,按产品编号ID分组获取每个产品的总收入,其中存储“收入”的字段为revenue。一个ID对应一个产品信息。获取总收入大于1000元的产品信息(产品ID、产品名name)以及总收入情况。

select ID,name,sum(revenue) as rev
from goods_data
group by ID,name
having sum(revenue)>1000

②与where、order by排序语法结合使用

例:现有一个产品销量表goods_data,按产品编号ID分组获取每个产品的总收入,其中存储“收入”的字段为revenue。一个ID对应一个产品信息。获取2022年4月份总收入大于1000元的每个产品信息(产品ID、产品名name)以及收入情况,并按收入降序。

select ID,name,sum(revenue) as rev
from goods_data
where date >= '2022-04-01' and date <= '2022-04-30'
group by ID,name
having sum(revenue)>1000
order by rev desc

2.having与where的区别

①两者都是条件语句。

②having语法用法是筛选成组后的各组数据,where语法是在聚合前先筛选记录。

③where不能与聚合函数结合使用,而having弥补where语句不能与聚合函数使用的缺陷,可以对聚合函数结合使用来限制聚合函数条件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小白修炼晋级中

你的鼓励是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值