Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.1 » SQL Anywhere 服务器 - SQL 的用法 » 查询和修改数据 » 对查询结果进行汇总、分组和排序

 

GROUP BY 子句:将查询结果划分为组

GROUP BY 子句将表的输出划分为若干个组。可以按一个或多个列名或者按计算列的结果将行分组。

子句顺序

如果 WHERE 子句和 GROUP BY 子句都存在,则 WHERE 子句必须在 GROUP BY 子句之前。GROUP BY 子句(如果存在)必须始终在 HAVING 子句之前。如果指定了 HAVING 子句,但未指定 GROUP BY 子句,则假定已经使用了一个 GROUP BY () 子句。

可以在一个查询中同时使用 HAVING 子句和 WHERE 子句。只有在构造了组之后,HAVING 子句中的条件才会在逻辑上限制结果行。WHERE 子句中的条件在构造组之前进行逻辑计算,这样可以节约时间。

当查询涉及 GROUP BY 子句时,很难了解哪些查询有效哪些查询无效。本节介绍如何对含有 GROUP BY 的查询进行分析,以便可以更好地理解查询的结果和有效性。


具有 GROUP BY 的查询是如何执行的
具有多个列的 GROUP BY
WHERE 子句和 GROUP BY
具有集合函数的 GROUP BY
GROUP BY 和 SQL/2008 标准