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

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - SQL 的用法 » 查询和修改数据 » 对查询结果进行汇总、分组和排序 » GROUP BY 子句:将查询结果划分为组

 

WHERE 子句和 GROUP BY

可以在含有 GROUP BY 的语句中使用 WHERE 子句。WHERE 子句将先于 GROUP BY 子句进行计算。在执行任何分组前消除不满足 WHERE 子句中的条件的行。下面是一个示例:

SELECT  Name, AVG( UnitPrice )
   FROM Products
   WHERE ID > 400
   GROUP BY Name;

用于生成查询结果的组中只包括 ID 值大于 400 的行。

示例

以下查询举例说明了在一个查询中同时使用 WHERE、GROUP BY 和 HAVING 子句的方法:

SELECT Name, SUM( Quantity )
   FROM Products
   WHERE Name LIKE '%shirt%'
   GROUP BY Name
   HAVING SUM( Quantity ) > 100;
Name SUM(Products.Quantity)

Tee Shirt

157

在此示例中:

  • WHERE 子句只包括名称中含有 shirt 一词(Tee Shirt、Sweatshirt)的行。

  • GROUP BY 子句收集同名的行。

  • SUM 集合函数将计算每一组中的产品总数。

  • HAVING 子句从最终结果中排除其库存总计不超过 100 的那些组。