集合函数可以显示指定列中值的汇总。还可以使用 GROUP BY 子句、HAVING 子句和 ORDER BY 子句对使用集合函数得到的查询结果进行分组和排序,以及使用 UNION 运算符来合并查询结果。
当 ORDER BY 子句包含常量时,由优化程序对常量进行解释,然后替换为等效的 ORDER BY 子句。例如,优化程序将 ORDER BY 'a' 解释为 ORDER BY 表达式。
对含多个集合函数的查询块,如果几个有效的 ORDER BY 子句可以在逻辑上组合成一个 ORDER BY 子句,则可执行该 ORDER BY 子句。例如,以下子句:
ORDER BY expression1, 'a', expression2 |
ORDER BY expression1, 'b', expression2, 'c', expression3 |
可归入下个子句:
ORDER BY expression1, expression2, expression3 |
可以将集合函数应用于表中的所有行、WHERE 子句指定的表的子集或表中的一组行或多组行。SQL Anywhere 会从每一组应用了集合函数的行生成一个值。
以下是部分受支持的集合函数:
AVG(表达式) 对于返回的行,计算所提供的表达式的平均值。
COUNT(表达式) 在表达式不是 NULL 的情况下计算所提供的组中的行数。
COUNT(*) 计算每一组中行的数目。
LIST(字符串表达式) 包含逗号分隔列表的字符串,由每一组行中 string-expr 的所有值组成。
MAX(表达式) 对于返回的行,计算表达式的最大值。
MIN(表达式) 对于返回的行,计算表达式的最小值。
STDDEV(表达式) 对于返回的行,计算表达式的标准偏差。
SUM(表达式) 对于返回的行,计算表达式的总和。
VARIANCE(表达式) 对于返回的行,计算表达式的方差。
有关集合函数的完整列表,请参见集合函数。
您可以将可选关键字 DISTINCT 与 AVG、SUM、LIST 和 COUNT 结合使用,以在应用集合函数前消除重复值。
语法语句引用的表达式通常是列名。也可以是更普通的表达式。
例如,通过以下语句,您可以求出在将 1 美元与每一个价格相加之后所有产品的平均价格:
SELECT AVG ( UnitPrice + 1 ) FROM Products; |
在哪些地方可以使用集合函数
集合函数和数据类型
使用 COUNT(*)
将集合函数与 DISTINCT 一起使用
集合函数和 NULL
![]() |
使用DocCommentXchange 讨论此页。
|
版权 © 2010, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.0 |