HAVING 節 HAVING clause

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

構文 HAVING 検索条件

検索条件は特殊な真偽式で、分類列(を参照してください。)か、集約式の一部である列のみ含める事ができます。 例えば以下の例では、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