group by与having、where的用法

本文详细讲解了SQL中的group by与having、where的用法,包括where在分组前过滤数据、having在分组后筛选组的条件,以及如何通过例子展示如何查询每个部门职位人数。重点介绍了何时使用where和when to use having的区分。
摘要由CSDN通过智能技术生成

分享一下group by与having、where的用法:

查询语句的select 和 group by 子句是聚组函数唯一出现的地方,在where子句中不能使用聚组函数。

select deptno,sum(sal) from emp where sal > 1200 group by deptno having sum(sal) > 10000 order by deptno

当在group by 子句中使用having 子句时,查询结果赶回满足having条件的组。在一个sql语句中可以有where 子句和having子句。having与where子句类似,绝用于设置限定条件。
where子句的作用是对查询结果分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中步高寒聚组函数,使用where条件显示特定的行。
having子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having显示特定的组,也可以使用分组标准进行分组。

查询每个部门的每种职位的人员数

select deptno,job,count(*) from emp group by deptno,job

如果你对何时使用where何时使用having仍然疑惑,请参考以下说明:
WHERE 语句在GROUP BY 语句之前,sql会在分组之前计算结果。
HAVING 语句在GROUP BY 语句之后,sql会在分组之后计算结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值