视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
SQL中having和where的区别分析
2020-11-09 07:08:46 责编:小采
文档


在select语句中可以使用groupby子句将行划分成较小的组,然后,使用聚组函数返回每一个组的汇总信息,另外,可以使用having子句返回的结果集。groupby子句可以将查询结果分组,并返回行的汇总信息Oracle按照groupby子句中指定的表达式的值分组查询结果。
在带有groupby子句的查询语句中,在select列表中指定的列要么是groupby子句中指定的列,要么包含聚组函数
代码如下:
selectmax(sal),jobempgroupbyjob;

(注意max(sal),job的job并非一定要出现,但有意义)
查询语句的select和groupby,having子句是聚组函数唯一出现的地方,在where子句中不能使用聚组函数。
代码如下:
selectdeptno,sum(sal)fromempwheresal>1200groupbydeptnohavingsum(sal)>8500orderbydeptno;

当在gropuby子句中使用having子句时,查询结果中只返回满足having条件的组。在一个sql语句中可以有where子句和having子句。having与where子句类似,均用于设置限定条件
where子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。
having子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having条件显示特定的组,也可以使用多个分组标准进行分组。
查询每个部门的每种职位的雇员数
代码如下:
selectdeptno,job,count(*)fromempgroupbydeptno,job;

如果你对何时应该使用WHERE,何时使用HAVING仍旧很迷惑,请遵照下面的说明:
WHERE语句在GROUPBY语句之前;SQL会在分组之前计算WHERE语句。
HAVING语句在GROUPBY语句之后;SQL会在分组之后计算HAVING语句。

您可能感兴趣的文章:

  • having的用法以及与where区别介绍
  • sql语句中where和having的区别
  • sql中的 where 、group by 和 having 用法解析
  • 数据库SQL中having和where的用法区别
  • SQL中Having与Where的区别
  • SQL中Having与Where的区别及注意
  • SQL中where子句与having子句的区别小结
  • 下载本文
    显示全文
    专题