前言

本章将学习sql分组及筛选。

范例

1.分组查询

--关键字:group by 分组字段名,分组字段名....
         --注意1:使用了分组后,在select语句中只允许出现分组字段和多行函数。
         --注意2:如果是多字段分组,则先按照第一字段分组,然后每个小组继续按照第二个字段继续分组,以此类推。
         --注意3:在where子句中不允许出现多行函数。

2.分组筛选

--关键字:having
              --作用:针对分组进行分组后的数据筛选,允许使用多行函数。
              --注意:having关键必须和分组结合使用。不允许单独使用。   
              --where和having的比较:
                 --where子句不允许出现多行函数,having允许出现多行函数
                 --where子句和having都可以使用普通字段直接进行筛选,但是where的效率高于having
                    --where执行顺序: from--->where--->group by-->select-->order by
                    --having执行顺序:from--->group by-->select--->having--->order by
               --结论:在分组语句中,使用where进行字段级别的筛选,使用having进行多行函数的筛选。

3.SQL查询语句的结构

--select 子句                  要查询的数据(oracle函数,别名,连接符,去除重复,逻辑运算)
--from语句                     决定要查询的表(表名)             
--where子句                    筛选数据(筛选条件,关键字)
--group by子句                 分组     (分组字段)
--having子句                   分组筛选   (多行函数筛选条件)
--order by子句                 排序       (排序)
--from-->where--->group by-->select--->having--->order by

附录:分组和筛选示例

--分组查询
--group by 分组字段
--查询全部员工信息
select * from emp;
--查询每个单位下的员工数量
select deptno,count(*) from emp group by deptno;
--注意1:使用了分组以后,在select语句中只能出现分组字段和多行函数
--注意2:使用了多字段分组后,先按照第一个字段进行分组,然后每个小组继续按照第二个字段继续分组,以此类推
--注意3:在where子句中,不允许出现多行函数
--分组查询每个单位下的员工数量且单位数量大于3
select deptno,count(*) from emp group by deptno ;--无法实现--分组筛选
--having 条件
----分组查询每个单位下的员工数量且单位数量大于3
select deptno,count(*) from emp group by deptno having count(*)>3;
--注意1:having必须和group by组合使用,不允许单独使用
--注意2:where和having的区别:
--查询单位id为20或30的员工信息且进行分组查询每个单位下的员工数量且单位数量大于3
select deptno,count(*) from emp group by deptno having count(*)>3 and deptno in ('20','30');
select deptno,count(*) from emp where deptno in ('20','30') group by deptno having count(*)>3 order by deptno asc;--区别:
--where子句不允许出现多行函数,而having允许
--where的查询效率要高于having
--结论
--where 进行字段级别的筛选,having 进行多行函数的筛选--SQL语句执行顺序
--from-->where-->group by-->select-->having-->order by

附录:操作视频

SQL之分组和筛选

SQL语法(三) 分组和筛选相关推荐

  1. SQL语法之分组函数,分组查询(进阶5)and连接查询(sql92语法进阶6)

    SQL语法体系学习笔记 SQL语法之基础查询(进阶1)and条件查询(进阶2) SQL语法之排序查询(进阶3)and常见函数(进阶4) SQL语法之分组函数,分组查询(进阶5)and连接查询(sql9 ...

  2. SQL语法之排序查询(进阶3)and常见函数(进阶4)

    SQL语法体系学习笔记 SQL语法之基础查询(进阶1)and条件查询(进阶2) SQL语法之排序查询(进阶3)and常见函数(进阶4) SQL语法之分组函数,分组查询(进阶5)and连接查询(sql9 ...

  3. SQL语法之基础查询(进阶1)and条件查询(进阶2)

    SQL语法体系学习笔记 SQL语法之基础查询(进阶1)and条件查询(进阶2) SQL语法之排序查询(进阶3)and常见函数(进阶4) SQL语法之分组函数,分组查询(进阶5)and连接查询(sql9 ...

  4. sql 排序 分组 层级 筛选 - God聚会啊

    前言: 以前做过2种列表,1是有排序,有筛选功能,但是没有层级和分组,2是有树形结构的层级和分组,但是数据是一下全部加载出来,虽然有点落后,没有用到分页加载,但是也是受制于大环境. 今天有1个需求是  ...

  5. oracle sql 平均分配 分组_SQL学习二

    训练大纲(第023天) 大家如果想快速有效的学习,思想核心是"以建立知识体系为核心",具体方法是"守破离".确保老师课堂上做的操作,反复练习直到熟练. 第41次 ...

  6. LINQ To SQL 语法及实例大全

    LINQ to SQL语句(1)之Where Where操作 适用场景:实现过滤,查询等功能. 说明:与SQL命令中的Where作用相似,都是起到范围限定也就是过滤作用的,而判断条件就是它后面所接的子 ...

  7. SQL——语法基础篇(上)

    虽然 SQL 是声明式语言,我们可以像使用英语一样使用它,不过在 RDBMS(关系型数据库管理系统)中,SQL 的实现方式还是有差别的.今天我们就从数据库的角度来思考一下 SQL 是如何被执行的. O ...

  8. 关系代数和SQL语法

    数据分析的语言接口 OLAP计算引擎是一架机器,而操作这架机器的是编程语言.使用者通过特定语言告诉计算引擎,需要读取哪些数据.以及需要进行什么样的计算.编程语言有很多种,任何人都可以设计出一门编程语言 ...

  9. MySQL理论基础以及sql语法

    本文章目标: 1.了解基础理论 2.必须会写sql语句(重点是查询语句) 碎碎念: mysql下载安装最好的教程之一,想当年我大一啥也不懂,装MySQL装了一个星期还是失败,呜呜呜呜,联系了这个博客的 ...

最新文章

  1. 【puthon】把大量csv文件写入h5文件制作数据集
  2. 关于cocos2d的下载和安装
  3. asp.net播放声音
  4. 搭建本地LNMP开发环境(1)-VMware内安装debian
  5. C++虚成员函数表vtable
  6. 统计自然语言处理笔记
  7. 如何处理 android 方法总数超过 65536 . the number of method references in a .dex file exceed 64k
  8. ssh(Spring+Spring mvc+hibernate)——hibernate.cfg.xml
  9. 王爽 汇编语言第三版 第11章 标志寄存器
  10. 安装ssr_网易《代号SSR》电脑版教程!
  11. python月份字符串_python实现字符串和日期相互转换的方法
  12. windows认证密码抓取
  13. 把所有数据库厂商拉在一起,会发生什么?
  14. 智课雅思词汇---七、cur是什么意思
  15. vector subscript out of range数组下标越界错误
  16. 正在开启,一名金融猎头的二十年 | 专访伯乐百万金融顾问 Leslie Xu
  17. jumpserver
  18. 贪心、动态规划:钢条切割
  19. rn 滑动验证_rn-fetch-blob
  20. linux下终端urvst,Linux中的静态库与动态库

热门文章

  1. Electron Vue 打包错误: InvalidConfigurationError: ‘build‘ in the application package.json
  2. Microsoft Data Access Components(MDAC) version 2.6 or later
  3. VAIO系统自带的娱乐媒体应用软件
  4. U880纯GPS定位综合解决方案,支持谷歌地图老虎地图百度地图
  5. 我国将投巨资开发网游 抵制进口垄断!
  6. 前端生成海报图:html2canvas 生成海报图/网页html转图片
  7. [画质提高30%利器]暴风5本地左眼爆破
  8. 太赫兹芯片是什么原理_芯片测试的颠覆者:太赫兹准光技术
  9. Jmeter 监控cpu、内存、io
  10. ParameterizedType获取java泛型参数类型