HAVING 句

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 句には、AndOr などの論理演算子を組み合わせて最大 40 個までの式を指定できます。

参照
ALL DISTINCT、DISTINCTROW、TOP 述語 (Microsoft Jet SQL) SELECT ステートメント (Microsoft Jet SQL)
FROM 句 (Microsoft Jet SQL) SELECT...INTO ステートメント (Microsoft Jet SQL)
GROUP BY 句 (Microsoft Jet SQL) SQL 集計関数 (SQL)
ORDER BY 句 (Microsoft Jet SQL) WHERE 句 (Microsoft Jet SQL)

使用例

HAVING 句の使用例