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