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