共通テーブル式は、WITH 句を使用して定義します。WITH 句は、SELECT 文内の SELECT キーワードに先行します。句の内容は、1 つ以上のテンポラリ・ビューを定義します。これらのテンポラリ・ビューは、文内の他の場所から参照できます。この句の構文は、CREATE VIEW 文の構文とよく似ています。共通テーブル式を使用して、前述のクエリを次のように記述できます。
WITH CountEmployees( DepartmentID, n ) AS ( SELECT DepartmentID, COUNT( * ) AS n FROM Employees GROUP BY DepartmentID ) SELECT DepartmentID, n FROM CountEmployees WHERE n = ( SELECT MAX( n ) FROM CountEmployees ); |
また、従業員の最も少ない部署を検索するようにクエリを変更すると、クエリが複数のローを返す場合があることがわかります。
WITH CountEmployees( DepartmentID, n ) AS ( SELECT DepartmentID, COUNT( * ) AS n FROM Employees GROUP BY DepartmentID ) SELECT DepartmentID, n FROM CountEmployees WHERE n = ( SELECT MIN( n ) FROM CountEmployees ); |
SQL Anywhere サンプル・データベースでは、従業員数が最も少ない 9 人編成の部署は 2 つあります。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |