次の方法で共有


GROUP BY コンポーネント

GROUP BY 句の構成要素は、次のようになっています。

  • 集計を含まない 1 つ以上の式。これらの式は通常、グループ化列を参照します。
  • 省略可能な ALL キーワード。このキーワードを使用すると、一部のグループに検索条件を満たす行がなくても、GROUP BY 句によって生成されたすべてのグループを返すように指定されます。
  • CUBE または ROLLUP。
  • HAVING 句は単独で指定することもできますが、通常は GROUP BY 句と一緒に使用されます。

式に集計関数が含まれない限り、式によってグループ化できます。次に例を示します。

SELECT DATEPART(yy, HireDate) AS Year,
       COUNT(*) AS NumberOfHires
FROM AdventureWorks.HumanResources.Employee
GROUP BY DATEPART(yy, HireDate)

以下に結果セットを示します。 

Year        NumberOfHires
----------- -------------
1997        2
2001        21
2000        45
1996        1
2003        3
1999        198
1998        16
2002        4

(8 row(s) affected)

GROUP BY では、AS 句で割り当てた結果セット列の名前ではなく、テーブル列またはビュー列の名前を指定する必要があります。たとえば、GROUP BY DATEPART(yy, HireDate) 句を GROUP BY Year に置き換えるのは無効です。

GROUP BY 句に複数の列を並べることで、グループを入れ子にできます。つまり任意の列の組み合わせでテーブルをグループ化できます。たとえば、次のクエリは、平均価格と今年に入ってからの売り上げの合計を、製品 ID と特別奉仕品 ID でグループ化して返します。

USE AdventureWorks;
GO
SELECT ProductID, SpecialOfferID, AVG(UnitPrice) AS 'Average Price', 
    SUM(LineTotal) AS SubTotal
FROM Sales.SalesOrderDetail
GROUP BY ProductID, SpecialOfferID
ORDER BY ProductID
GO

参照

その他の技術情報

SELECT (Transact-SQL)

ヘルプおよび情報

SQL Server 2005 の参考資料の入手