【分组查询】
关键字:group by 分组字段名,分组字段名...
 --注意1:分组后,在select语句中只允许出现分组字段和多行函数
 --注意2:如果是多字段分组,先按第一字段分组,然后每个小组继续按照第二个字段分组,以此类推。
 --注意3:在where子句中不允许出现多行函数(where子句比多行函数级别高)
【分组筛选】
关键字:having
 --作用:针对分组后数据进行筛选,允许使用多行函数。
 --注意1 :having必须和分组关键字结合使用,不允许单独使用。
注意:where 和 having 比较:
 --1.where子句不允许出现多行函数,having允许出现多行函数。
 --2.where子句和having都可以使用普通字段直接进行筛选,但是where的效率高于having。
where执行顺序: from-->where-->group by-->select-->order by
having执行顺序:from-->group by-->select-->having-->order by
小结:在分组语句中:使用where进行字段级别的筛选,使用having进行多行函数筛选。

举栗子:

 --查询不同部门的最高工资
select deptno,max(sal) from emp group by deptno;
--查询不同工作岗位的员工数
select job,count(*) from emp group by job;
--查询不同部门的不同工作岗位的人数
select deptno,job,count(*) from emp group by deptno,job order by deptno;
--查询不同部门的不同工作岗位的并且人数大于1的信息
select deptno,job,count(*) from emp group by deptno,job having count(*)>1 order by deptno;
--查询部门号大于10的不同部门的不同工作岗位的人数
select deptno,job,count(*) from emp group by deptno,job having deptno>10 order by deptno;
select deptno,job,count(*) from emp where deptno>10 group by deptno,job order by deptno;--执行效率高

 

Oracle子句【group by、having】的更多相关文章

  1. Oracle中group by用法

    Oracle中group by用法 在select 语句中可以使用group by 子句将行划分成较小的组,一旦使用分组后select操作的对象变为各个分组后的数据,使用聚组函数返回的是每一个组的汇总 ...

  2. oracle 中GROUP BY的用法

    转自:http://blog.csdn.net/basenet855x/article/details/6694150 问题: select item.itemnum,item.in1,item.in ...

  3. Oracle中group by 的扩展函数rollup、cube、grouping sets

    Oracle的group by除了基本使用方法以外,还有3种扩展使用方法,各自是rollup.cube.grouping sets.分别介绍例如以下: 1.rollup 对数据库表emp.如果当中两个 ...

  4. oracle数据库GROUP BY 子句

    1.GROUP BY子句 在SELECT 列表中所有未包含在组函数中的列都应该包含在GROUP BY 子句中. 如下: SELECT deptno,AVG(sal) from emp GROUP BY ...

  5. Oracle之Group by和Having-----转了

    在介绍GROUP BY 和 HAVING 子句前,我们必需先讲讲sql语言中一种特殊的函数:聚合函数,例如SUM, COUNT, MAX, AVG等.这些函数和其它函数的根本区别就是它们一般作用在多条 ...

  6. oracle的group by问题

    ORA-00979 不是 GROUP BY 表达式”这个错误,和我前面介绍的另外一个错误ORA-00937一样使很多初学oracle的人爱犯的. 我在介绍使用聚合函数中用group by来分组数据时特 ...

  7. oracle 中 group by 加强

    group by rollup(a,b) = group by a,b + group by a + group by null SQL> select deptno,job,sum(sal) ...

  8. 【Oracle】group by 和partition by的区别

    总结: group 单纯分组 partition 也能分组,但还具备累计的功能 order by 排序,与计算函数联用,需要累加计算 0.select * from test;     ---测试数据 ...

  9. oracle中group by的高级用法

    简单的group by用法 select c1,sum(c2) from t1 where t1<>'test' group by c1 having sum(c2)>100; ro ...

随机推荐

  1. phoenix创建表失败:phoenixIOException: Max attempts exceeded

    下面的问题,搞了1天才解决,太坑了,在这里记录一下. 问题现像:执行命令后,1分钟没有返回, 然后报下面的错,偶尔会出现以下不同的报错信息. jdbc:phoenix:10.0.xx.1:2181&g ...

  2. java数据结构之HashSet和TreeSet以及LinkedHashSet

    一.HashSet源码注释 public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cl ...

  3. iptable的四表五链

    iptable的概念中有四张表,五条链. 四张表是: filter表——过滤数据包 Nat表——用于网络地址转换(IP.端口) Mangle表——修改数据包的服务类型.TTL.并且可以配置路由实现QO ...

  4. main.js中的Vue.config.productionTip = false

    开发模式:npm run dev是前端自己开发用的生产模式:npm run build 打包之后给后端放在服务端上用的Vue.config.productionTip = false1上面这行代码的意 ...

  5. 【并行计算-CUDA开发】CUDA编程——GPU架构,由sp,sm,thread,block,grid,warp说起

    掌握部分硬件知识,有助于程序员编写更好的CUDA程序,提升CUDA程序性能,本文目的是理清sp,sm,thread,block,grid,warp之间的关系.由于作者能力有限,难免有疏漏,恳请读者批评 ...

  6. maven 编译,测试,打包和安装工程

    编译工程,使用命令mvn compile 测试工程,使用命令mvn test 测试和编译工程,使用命令mvn test-compile 打包工程,使用命令mvn package,将工程打包成jar\w ...

  7. [转帖]SSH原理与运用(一):远程登录

    http://www.ruanyifeng.com/blog/2011/12/ssh_remote_login.html 写的很好.. 自己才简单明白了一点东西.. SSH是每一台Linux电脑的标准 ...

  8. Oracle-DQL 3- 单行函数

    单行函数: --使用函数对表中的数据进行运算和处理,针对每行数据返回一个结果,叫做单行函数--包括数字函数,字符函数,日期函数,转换函数,其他函数 1.数字函数 --round(m,n) 将数字m精确 ...

  9. chrome xpath调试

  10. 【LOJ】#2983. 「WC2019」数树

    LOJ2983. 「WC2019」数树 task0 有\(i\)条边一样答案就是\(y^{n - i}\) task1 这里有个避免容斥的方法,如果有\(i\)条边重复我们要算的是\(y^{n - i ...