在select 语句中可以使用group by 子句将行划分成较小的组,然后,使用聚组函数返回每一个组的汇总信息,另外,可以使用having子句限制返回的结果集。group by 子句可以将查询结果分组,并返回行的汇总信息Oracle 按照group by 子句中指定的表达式的值分组查询结果。

在带有group by 子句的查询语句中,在select 列表中指定的列要么是group by 子句中指定的列,要么包含聚组函数

select max(sal),job emp group by job; 
   (注意max(sal), job 的job并非一定要出现,但有意义 )

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

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

当在gropu 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会在分组之前计算WHERE语句。

  HAVING语句在GROUP BY语句之后;SQL会在分组之后计算HAVING语句。

SQL 中having 和where的区别(转)相关推荐

  1. SQL中where与having的区别

    SQL中where与having的区别 目录 SQL中where与having的区别 创建表 插入数据 进行聚合操作 # WHERE是在聚合之前进行数据行的过滤而HAVING实在聚合之后进行新数据的过 ...

  2. sql中exits和in的区别

    sql中exits和in的区别 转:http://hi.baidu.com/delphi_relive/blog/item/d7c0034a49c4932208f7ef21.html in 和 exi ...

  3. SQL中modify和alter用法区别

    SQL中modify和alter用法区别 1. 所属能力大小不同: modify:只能用于修改字段的属性 例如:把age字段变为非空(针对persons表中的age这一个字段进行修改) ALTER T ...

  4. 数据库查询语句SQL中like、%、-的区别

    数据库查询语句SQL中like.%.-的区别 数据库查询语句SQL中like.%.-的区别 %百分号通配符:表示任何字符出现任意次数(可以是0次) SQL 语句选取 name 以字母 "k& ...

  5. sql中=null和is null区别

    sql中=null和is null区别 前言 关于sql语句对null的处理尤其小心,这个null处理的知识点我看了好几次,但是很容易再次犯错,这次记录一个点, 因为这个错误是我看一个帖子看到的错误的 ...

  6. sql中exists替换in的区别

    在sql中使用exists替换in查询时要注意使用exists时一定要关联主查询和子查询的关联不然查询会得不到相应的结果如下语句:  语句一使用in查询:  select realname from ...

  7. 《小常识-23》sql中any与some的区别

    #在 SQL 中 ANY 和 SOME 是同义词,所以下面介绍的时候只使用 ANY,SOME 的用法 #和功能和 ANY 一模一样.和 IN 运算符不同,ANY 必须和其他的比较运算符共同使用,而 # ...

  8. sql中 set 和select 的区别

    SQL Server 中对已经定义的变量赋值的方式用两种,分别是 SET 和 SELECT. 对于这两种方式的区别,SQL Server 联机丛书中已经有详细的说明,但很多时候我们 并没有注意,其实这 ...

  9. sql中where和on的区别

    数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户. 在使用left jion时,on和where条件的区别如下: 1. on条件是在生成临时表时使用的条 ...

  10. sql 中on和where的区别

    table a(id, type): id     type ---------------------------------- 1      1 2      1 3      2 table b ...

最新文章

  1. python异常处理的作用_python--异常处理
  2. 4ask调制与解调的matlab_LTE中的调制和编码
  3. python docx 字体大小_Python操作Word的入门教程
  4. 导出excel 数据取一次合理还是分页取合理_一张报表模板替代数百张Excel表格,用它让报表工作更轻松...
  5. DB9 公头母头引脚定义及连接、封装
  6. Android开发中验证码的生成
  7. 2021年皓丽新品- 86KD1 86寸纳米智慧黑板(电容屏)-产品说明
  8. 人工晶状体在线公式A常数优化——多线程
  9. Win7各正式版下载地址和SHA验证
  10. 语音识别工具Sphinx4
  11. Unity Spine动画如何选定帧数(时间)播放
  12. python白平衡-树莓派摄像头Camera的使用
  13. Excel教程视频《Excel大神上分攻略》50个工作场景,从案例到实践
  14. 【JAVA】滴滴-2021校招在线笔试-DE数据开发试卷-0913
  15. 写论文一定要会-------中英文参考文献的导出方法
  16. Vue+vant使用uploader上传图片
  17. 钛资本研究院:5G时代,SD-WAN将何去何从?
  18. 关于工业镜头的景深以及分辨率
  19. 微信网页长按二维码不识别问题
  20. 我是如何从桌面维护转到Linux系统运维

热门文章

  1. Python风格总结: 复制列表
  2. The file contains a character that cannot be represented in the current code pag
  3. 修改sublime textd3中的注释文字颜色
  4. RxJava练武场之——Token前置请求
  5. 授人以鱼不如授人以渔
  6. F5 APM针对Vmware view7.3 VDI业务发布测试问题分析
  7. IDEA 运行maven命令时报错: -Dmaven.multiModuleProjectDirectory system propery is not set
  8. ASP.NET MVC:Razor 引入命名空间
  9. WinForm LED循环显示信息,使用定时器Threading.Timer
  10. linux下配置SVN搭建 centos svn安装配置