聚集函数的函数语法

 我来答
祭帅0Fu77e
2016-05-31 · TA获得超过121个赞
知道答主
回答量:181
采纳率:0%
帮助的人:148万
展开全部

聚集函数是 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 子句的单个组。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式