【分组查询】
关键字: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;--执行效率高

 

最新文章

  1. PHP读取CSV文件把数据插入到数据库,本地没有问题,阿里云测试服务器不行
  2. ORACLE常用SQL(session&badSql)
  3. Ubuntu使用ssh公钥实现免密码登录
  4. ionic 里使用 iframe 可能遇到的问题
  5. osgi dm
  6. win2003 Enterprise Edition sp2 企业版序列号
  7. C++之路进阶——codevs1036(商务旅行)
  8. (转)C#精确时间计时器
  9. html保留字符详解
  10. Esxi主机虚拟机迁移注意事项
  11. decimal类型不能为空,自定义update更新null值的问题。
  12. react中需要用到【深度复制】的问题
  13. [Abp vNext 源码分析] - 1. 框架启动流程分析
  14. JavaScript大师必须掌握的12个知识点
  15. Java的课后作业——18.10.18
  16. MAVEN day04 SSH之分模块开发
  17. npm报错处理
  18. Java之File类详解
  19. (转)SVN服务器搭建和使用(三) 附vs2013 svn插件
  20. Vue 介绍

热门文章

  1. Xib设置label自动换行和Label的顶部对齐
  2. lumen中间件中设置响应header
  3. python-linux-集群nginx
  4. PHP学习(6)——代码重用与函数编写的一些注意事项
  5. MQTT 简介及协议原理
  6. mysql数据库之视图、触发器
  7. Linux 打包QT程序到未安装QT的其他Linux主机下运行
  8. 【LOJ】#3090. 「BJOI2019」勘破神机
  9. 图论+思维(2019牛客国庆集训派对day2)
  10. sqlalchemy定义mysql时间戳字段