可以在含有 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 的那些组。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |