指定したフィールド リストの中で同じ値を持つレコードを結合して 1 つのレコードにします。SELECT ステートメントで、Sum 関数や Count 関数などの SQL 集計関数を使用すると、各レコードの集計値が得られます。
SELECT fieldlist
FROM table
WHERE criteria
[GROUP BY groupfieldlist]
GROUP BY 句を使用する SELECT ステートメントには、次の指定項目があります。
指定項目 | 内容 |
---|---|
fieldlist | 取得する 1 つ以上のフィールドの名前。フィールド名の別名、SQL 集計関数、選択述語 (ALL、DISTINCT、DISTINCTROW、TOP) などの SELECT ステートメント オプションも指定できます。 |
table | 取得するデータのあるテーブルの名前。詳細については、FROM 句を参照してください。 |
criteria | 抽出条件。ステートメントに WHERE 句が含まれている場合、Microsoft Jet データベース エンジンは WHERE 句の条件に従ってレコードを抽出した後に値をグループ化します。 |
groupfieldlist | レコードのグループ化に使用するフィールドの名前。最大 10 個まで指定できます。引数 groupfieldlist でのフィールド名の順序によって、グループ化のレベルが決まります。一番左に指定したフィールドのグループ化レベルが一番高くなります。 |
GROUP BY 句は省略可能です。
SELECT ステートメントで SQL 集計関数を指定していない場合、集計値は計算されません。
GROUP BY 句の中で指定したフィールドに Null 値がある場合、それらの Null 値も省略されずにグループ化されます。ただし、Null 値は集計関数では評価されません。
グループ化しない行を除く場合は、WHERE 句を使用します。また、グループ化されているレコードにフィルタを掛ける場合は、HAVING 句を使用します。
SELECT ステートメントに 1 つでも SQL 集計関数を指定した場合は、FROM 句に挙げたテーブルのフィールドのうちメモ型 (Memo) や OLE オブジェクト型 (OLE Object) 以外のフィールドは、SELECT ステートメントに入っていないものでも、すべて GROUP BY 句のフィールド リストに入れることができます。
SELECT ステートメントのフィールド リストに指定したすべてのフィールドは、GROUP BY 句、または SQL 集計関数の引数のどちらかに指定する必要があります。