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 より大きいローだけが含まれます。

次に、1 つのクエリの中で、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 以下のグループが除外されます。