GROUP BY 句を使用した SELECT ステートメントの中で、グループ化したレコードのうちどれを表示するのかを指定します。GROUP BY 句でレコードをグループ化した後、HAVING 句を使用し、GROUP BY 句でグループ化したレコードのうち HAVING 句の条件を満たすレコードをすべて表示します。
SELECT fieldlist
FROM table
WHERE selectcriteria
GROUP BY groupfieldlist
[HAVING groupcriteria]
HAVING 句を使用する SELECT ステートメントには、次の指定項目があります。
指定項目 | 内容 |
---|---|
fieldlist | 取得する 1 つ以上のフィールドの名前。フィールド名の別名、SQL 集計関数、選択述語 (ALL、DISTINCT、DISTINCTROW、TOP) などの SELECT ステートメント オプションも指定できます。 |
table | 取得するデータのあるテーブルの名前。詳細については、FROM 句を参照してください。 |
selectcriteria | 抽出条件。ステートメントに WHERE 句が含まれている場合、Microsoft Jet データベース エンジンは WHERE 句の条件に従ってレコードを抽出した後に値をグループ化します。 |
groupfieldlist | レコードのグループ化に使用するフィールドの名前。最大 10 個まで指定できます。引数 groupfieldlist でのフィールド名の順序によって、グループ化のレベルが決まります。一番左に指定したフィールドのグループ化レベルが一番高くなります。 |
groupcriteria | グループ化したレコードのうち表示するレコードを指定する式。 |
HAVING 句は省略可能です。
HAVING 句は WHERE 句と似ていますが、次のような違いがあります。WHERE 句は選択するレコードを決めるために使用しますが、HAVING 句は、GROUP BY 句でグループ化したレコードの中でどのレコードを表示するのかを決めるために使用します。例を次に示します。
SELECT
種類コード,
Sum(
在庫)
FROM
製品
GROUP BY
種類コード
HAVING Sum(
在庫) > 100 And Like "BOS*";
HAVING 句には、And や Or などの論理演算子を組み合わせて最大 40 個までの式を指定できます。