聚集函数的函数语法
答案:1 悬赏:0 手机版
解决时间 2021-12-02 14:52
- 提问者网友:我一贱你就笑
- 2021-12-01 21:10
聚集函数的函数语法
最佳答案
- 五星知识达人网友:往事埋风中
- 2021-12-01 22:44
聚集函数是 AVG、COUNT、MAX、MIN 和 SUM。以下示例中描述了聚集函数的语法:aggregation-function ( [ ALL | DISTINCT ] expression )或:COUNT( [ ALL | DISTINCT ] identification-variable )或:COUNT( * )
在应用函数之前,DISTINCT 选项消除重复值。ALL 是缺省选项,并且不消除重复。计算聚集函数时,除了 COUNT(*) 和 COUNT(identification-variable)(它们返回此集合中的所有元素的计数值),空值都被忽略。
如果您的数据存储是 Informix,那么当使用 COUNT 函数或 SUM、AVG、MIN 和 MAX 函数的 DISTINCT 格式时,必须将表达式参数限定为单个值的路径表达式。
定义返回类型 对于使用聚集函数的选择方法,您可以将返回类型定义为基本类型或包装器类型。返回类型必须与来自数据存储的返回类型兼容。MAX 和 MIN 函数可以应用于任何数字、字符串或日期时间数据类型并返回相应的数据类型。SUM 和 AVG 函数采用数字类型作为输入,并返回数据存储中使用的同一数字类型。COUNT 函数可以采用任何数据类型,并返回整数。
当应用于空集时,SUM、AVG、MAX 和 MIN 函数可以返回 null 值。当 COUNT 函数应用于空集时,它返回零(0)。如果返回值可能是 NULL,那么使用包装器类型;否则,容器会显示 ObjectNotFound 异常。
使用 GROUP BY 和 HAVINg 用于聚集函数的值的集合是由查询的 FROM 和 WHERe 子句产生的集合来确定的。您可以将该集合分成几个组,并将聚集函数应用于每个组。要执行此操作,请在查询中使用 GROUP BY 子句。GROUP BY 子句定义组成路径表达式列表的分组成员。每个路径表达式指定作为基本类型(byte、short、int、long、float、double、boolean、char)或包装器类型(Byte、Short、Integer、Long、Float、Double、BigDecimal、String、Boolean、Character、java.util.Calendar、java.util.Date、 java.sql.Date、java.sql.Time 或 java.sql.Timestamp)的字段。
以下示例描述计算每个部门的平均月薪的查询中 GROUP BY 子句的使用:
SELECt e.dept.deptno, AVG ( e.salary) FROM EmpBean e GROUP BY e.dept.deptno将集合分为几个组时,认为一个 NULL 值等于另一个 NULL 值。
正如 WHERe 子句从 FROM 子句过滤元组(即,返回多值的记录),可以使用测试组属性(涉及聚集函数或分组成员)的 HAVINg 子句来过滤组:SELECt e.dept.deptno, AVG ( e.salary) FROM EmpBean e GROUP BY e.dept.deptnoHAVINg COUNT(*) > 3 AND e.dept.deptno > 5
此查询返回多于三个职员且部门号大于五的部门的平均月薪。
可以使用不带 GROUP BY 子句的 HAVINg 子句,在此情况下将整个集合视为应用 HAVINg 子句的单个组。
在应用函数之前,DISTINCT 选项消除重复值。ALL 是缺省选项,并且不消除重复。计算聚集函数时,除了 COUNT(*) 和 COUNT(identification-variable)(它们返回此集合中的所有元素的计数值),空值都被忽略。
如果您的数据存储是 Informix,那么当使用 COUNT 函数或 SUM、AVG、MIN 和 MAX 函数的 DISTINCT 格式时,必须将表达式参数限定为单个值的路径表达式。
定义返回类型 对于使用聚集函数的选择方法,您可以将返回类型定义为基本类型或包装器类型。返回类型必须与来自数据存储的返回类型兼容。MAX 和 MIN 函数可以应用于任何数字、字符串或日期时间数据类型并返回相应的数据类型。SUM 和 AVG 函数采用数字类型作为输入,并返回数据存储中使用的同一数字类型。COUNT 函数可以采用任何数据类型,并返回整数。
当应用于空集时,SUM、AVG、MAX 和 MIN 函数可以返回 null 值。当 COUNT 函数应用于空集时,它返回零(0)。如果返回值可能是 NULL,那么使用包装器类型;否则,容器会显示 ObjectNotFound 异常。
使用 GROUP BY 和 HAVINg 用于聚集函数的值的集合是由查询的 FROM 和 WHERe 子句产生的集合来确定的。您可以将该集合分成几个组,并将聚集函数应用于每个组。要执行此操作,请在查询中使用 GROUP BY 子句。GROUP BY 子句定义组成路径表达式列表的分组成员。每个路径表达式指定作为基本类型(byte、short、int、long、float、double、boolean、char)或包装器类型(Byte、Short、Integer、Long、Float、Double、BigDecimal、String、Boolean、Character、java.util.Calendar、java.util.Date、 java.sql.Date、java.sql.Time 或 java.sql.Timestamp)的字段。
以下示例描述计算每个部门的平均月薪的查询中 GROUP BY 子句的使用:
SELECt e.dept.deptno, AVG ( e.salary) FROM EmpBean e GROUP BY e.dept.deptno将集合分为几个组时,认为一个 NULL 值等于另一个 NULL 值。
正如 WHERe 子句从 FROM 子句过滤元组(即,返回多值的记录),可以使用测试组属性(涉及聚集函数或分组成员)的 HAVINg 子句来过滤组:SELECt e.dept.deptno, AVG ( e.salary) FROM EmpBean e GROUP BY e.dept.deptnoHAVINg COUNT(*) > 3 AND e.dept.deptno > 5
此查询返回多于三个职员且部门号大于五的部门的平均月薪。
可以使用不带 GROUP BY 子句的 HAVINg 子句,在此情况下将整个集合视为应用 HAVINg 子句的单个组。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯