GROUP BY 句

Access の GROUP BY 句は、指定したフィールド リストの中で同じ値を持つレコードを 1 つのレコードに結合します。SUM 関数や COUNT 関数などの SQL 集計関数を SELECT ステートメントに含めている場合は、レコードごとに集計値が作成されます。

構文

SELECT <fieldlist>
FROM <table>
WHERE <criteria>
[GROUP BY <groupfieldlist>]

GROUP BY 句を使用する SELECT ステートメントには、次の指定項目があります。

引数

説明

fieldlist

取得する 1 つ以上のフィールドの名前。フィールド名の別名、SQL 集計関数、選択述語 (ALL、DISTINCT、DISTINCTROW、および TOP)、または SELECT ステートメント オプションも指定できます。

table

レコードを取得するテーブルの名前。

criteria

抽出条件。ステートメントに WHERE 句が含まれている場合、Microsoft Access データベース エンジンは、WHERE 句の条件に従ってレコードを抽出した後に値をグループ化します。

groupfieldlist

レコードをグループ化するために使用される最大 10 個のフィールドの名前。groupfieldlist のフィールド名の順序によって、最上位から最下位まで、グループ化のレベルが決まります。

解説

GROUP BY 句は省略可能です。

SELECT ステートメントで SQL 集計関数を指定していない場合、集計値は算出されません。

GROUP BY フィールドの Null 値は省略されずにグループ化されます。ただし、Null 値は SQL 集計関数では評価されません。

グループ化しない行を除く場合は、WHERE 句を使用します。また、グループ化されているレコードにフィルターを適用する場合は、HAVING 句を使用します。

SELECT ステートメントに 1 つでも SQL 集計関数を指定した場合は、FROM 句に挙げたテーブルのフィールドのうちメモ データ型 (Memo) や OLE オブジェクト データ型 (OLE Object) 以外のフィールドは、SELECT ステートメントに入っていないものでも、すべて GROUP BY 句のフィールド リストに入れることができます。Microsoft Access データベース エンジンは、メモ型 (Memo) や OLE オブジェクト型 (OLE Object) のフィールドをグループ化できません。

SELECT ステートメントのフィールド リストに指定したすべてのフィールドは、GROUP BY 句、または SQL 集計関数の引数のどちらかに指定する必要があります。

Office のスキルを磨く
トレーニングの探索
新機能を最初に入手
Office Insider に参加する

この情報は役に立ちましたか?

ご意見をいただきありがとうございます。

フィードバックをお寄せいただき、ありがとうございます。Office サポートの担当者におつなぎいたします。

×