聚合函数: sql语言中一种特殊的函数:聚合函数,SUM, COUNT, MAX, MIN, AVG等。这些函数和其它函数的根本区别就是它们一般作用在多条记录上。
                             SELECT SUM(population) FROM COUNTRY 
                             这里的SUM作用在所有返回记录的population字段上,结果就是该查询只返回一个结果,即所有国家的总人口数。
        通过使用GROUP BY 子句,可以让SUM 和 COUNT 这些函数对属于一组的数据起作用。当你指定 GROUP BY region 时,属于同一个region(地区)的一组数据将只能返回一行值,也就是说,表中所有除region(地区)外的字段,只能通过 SUM, COUNT等聚合函数运算后返回一个值。
        HAVING子句可以让我们筛选成组后的各组数据,WHERE子句在聚合前先筛选记录.也就是说作用在GROUP BY 子句和HAVING子句前。而 HAVING子句在聚合后对组记录 进行筛选。
        一、显示每个地区的总人口数和总面积: SELECT region, SUM(population), SUM(area) FROM COUNTRY GROUP BY region 
               先以region把返回记录分成多个组,这就是GROUP BY的字面含义。分完组后,然后用聚合函数对每组中的不同字段(一或多条记录)作运算。
        二、显示每个地区的总人口数和总面积.仅显示那些面积超过1000000的地区。 SELECT region, SUM(population), SUM(area) FROM COUNTRY GROUP BY region HAVING SUM(area)>1000000 
               在这里,我们不能用where来筛选超过1000000的地区,因为表中不存在这样一条记录。相反,HAVING子句可以让我们筛选成组后的各组数据。

在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;

通过对上面的学习就会知道这条sql语句如何写:查询出员工表中哪个姓名具有重名现象:SELECT NAME FROM employee GROUP BY NAME HAVING COUNT(*)>=2

聚合函数和group by相关推荐

  1. 选择列表中的列……无效,因为该列没有包含在聚合函数或 GROUP BY 子句中

    今天用SQL Server尝试实现一个SQL语句的时候,报了如标题所示的错误,通过在百度里面搜索,并亲自动手实现,终于发现问题所在,现在把它记录下来. 语句如下: select [OrderID],[ ...

  2. 选择列表中的列'sc.cno'无效,因为该列没有包含在聚合函数或者group by 字句中《SQL中的group by该怎么用?》

    1.SQL Server中,子查询不能返回多个值 2.子查询中不能包含ORDER BY子句 3.group by 可以将查询结果按某一列或多列的值进行分组.group by 一般是和聚合函数一起搭配使 ...

  3. MySQL——聚合函数和group by分组的使用

    文章目录 MySQL--聚合函数和group by分组的使用 1.聚合函数介绍 2.GROUP BY 分组 3.常见的聚合函数 4.SQL执行顺序 MySQL--聚合函数和group by分组的使用 ...

  4. 选择列表中的列 '.......' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。

    错误:消息 8120,级别 16,状态 1,第 51 行 选择列表中的列 'Employee.EmployeeID' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中. 题目:查询最低收入 ...

  5. 42000[SQL Server]ORDER BY子句中的列无效,该列没有包含在聚合函数或GROUP BY 子句

    [Err] 42000 - [SQL Server]ORDER BY 子句中的列 "t_xxx.inputDate" 无效,因为该列没有包含在聚合函数或 GROUP BY 子 错误 ...

  6. 关于因为该列没有包含在聚合函数或 GROUP BY 子句中

    参考:http://blog.csdn.net/wlf535944903/article/details/5576287 在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在 GROUP BY ...

  7. SQL Server报错:选择列表中的列无效,因为该列没有包含在聚合函数或 GROUP BY 子句中...

    聚合函数:聚合函数就是对一组值进行计算后返回单个值. 包括: COUNT(统计函数): COUNT_BIG(统计函数): SUM(求和函数): AVG(求平均值函数): MAX(最大值函数): MIN ...

  8. MySQL之算术表达式、聚合函数及GROUP BY 与 HANVING 等函数的应用

    一.MySQL的算术表达式 算术表达式就是加减乘除的运算过程,主要是对一条数据中出现的数字进行统计和运算. 首先,有一张数据表,如下: mysql> select * from test_sco ...

  9. max等聚合函数和group by搭配使用的注意事项

    1 group by的特点 1.1 定义 group_by的意思是根据by对数据按照哪个字段进行分组,或者是哪几个字段进行分组. 如果不在group by 后的分组中使用聚合函数,一般只会返回各个分组 ...

  10. SQL Server报错:选择列表中的列无效,因为该列没有包含在聚合函数或 GROUP BY 子句中

    聚合函数:聚合函数就是对一组值进行计算后返回单个值. 包括: COUNT(统计函数): COUNT_BIG(统计函数): SUM(求和函数): AVG(求平均值函数): MAX(最大值函数): MIN ...

最新文章

  1. Closer--Never Take it for granted
  2. yota3墨水屏设置_国产墨水屏“手写平板”评测,10.3英寸大屏,支持无纸化办公...
  3. boost::bucket_sorter用法的测试程序
  4. Nginx的http块自定义服务日志
  5. ASA防火墙16 SSL/×××
  6. 决策树有框架吗_决策框架
  7. WordPress函数:get_sidebar(获取侧边栏)
  8. 排队接水(信息学奥赛一本通-T1319)
  9. Tomcat 服务器介绍和使用
  10. 【MyBatis框架】SqlMapConfig剖析
  11. 匿名函数php作用,PHP匿名函数可以干什么用
  12. UTF-16 -- 顶级程序员也会忽略的系统编码问题,JDK 错了十年!
  13. 【NOIP模拟赛】超级树 DP
  14. ASP与SQL数据库连接及SQL常用命令使用方法
  15. 基于Android幼儿园管理系统,幼儿园管理系统
  16. 104规约 scada
  17. deep|Bayes(4)
  18. SystemInfo获取系统参数
  19. 2022年的国外广告联盟,合格的EMU者有你吗?
  20. The bean ‘dataTokenMapper‘ could not be injected because it is a JDK dynamic

热门文章

  1. 微软云中国策略的下一步:驱动AI生态
  2. 安全隐患分析和基本系统结构信息的收集
  3. ylbtech-Unitity-CS:AnonymousDelegates
  4. Fintech生态报告:区块链是金融业革新的王牌技术
  5. 开源docker管理平台rancher 安装部署
  6. 【linux高级程序设计】(第十一章)System V进程间通信 4
  7. LV自动挂载,快照,删除等操作
  8. 56. mysqli 扩展库(3)
  9. 循序渐进之Spring AOP(4) - Introduction
  10. 小马虎g用计算机计算题目,四年级奥数期末复习题二