# HAVING 節

HAVING節により選択式のGROUP BYの結果が絞り込まれます。WHERE節が選択列一覧に作用するのとは異なり、HAVING節は表から分類された部分集合に対して作用します。もしGROUP BY節がなければ、HAVING節は結果を単独の分類と見なして作用します。 SELECT節にてGROUP BY句のない列を直接参照することはできません。しかし定数や集約、特殊変数を参照することはできます。

#### 構文

    HAVING 検索条件

検索条件は特殊な真偽式で、分類列(GROUP BY 節を参照してください。)か、集約式の一部である列のみ含める事ができます。 例えば以下の例では、SALARYという列は分類の列や集約、副問い合わせにある列ではないので、この文は不正です。

    -- SELECT COUNT(*)
    -- FROM SAMP.STAFF
    -- GROUP BY ID
    -- HAVING SALARY > 15000

HAVING節の集約はSELECTの一覧になくてもかまいません。 もしHAVING節が副問い合わせを含むならば、その副問い合わせは分類の列についてのみ、外の問い合わせを参照することができます。

    -- 2席以上の航路ごとに、エコノミー席の合計を調べる。
    SELECT SUM(ECONOMY_SEATS_TAKEN), AIRLINE_FULL
    FROM FLIGHTAVAILABILITY, AIRLINES
    WHERE SUBSTR(FLIGHTAVAILABILITY.FLIGHT_ID, 1, 2) = AIRLINE
    GROUP BY AIRLINE_FULL
    HAVING COUNT(*) > 1

親トピック: SQL 節