HAVING句とは?ハビングく
HAVING句とは、束ねたあとのまとまりに対して、どれを残すかの条件を書く句。条件に集約関数の結果を使えるのが特徴で、「件数が3以上」「合計が100万円を超える」のような、まとまってからでないと値が決まらない絞り込みを受け持つ。
最終更新:2026-10-06
データベースSPを最短で暗記・合格する →背景
行を絞る条件はWHERE句があれば足りるように見える。ところが合計や件数はまとまりを作った後にしか決まらないので、WHERE句が評価される時点ではまだ値が存在しない。評価の順番が先か後かという理由だけで、条件を書く場所を2つに分ける必要が生じた。SQLの句が、書く順番と評価される順番で並びが違うのはこの事情による。
具体例
SELECT 商品分類, COUNT(*) FROM 受注明細 WHERE 受注日 >= '2026-04-01' GROUP BY 商品分類 HAVING COUNT(*) >= 3 と書けば、今期の明細に限ったうえで3件以上ある分類だけが残る。2つの句がそれぞれ別の仕事をしている。
試験での引っ掛け
WHERE句は束ねる前に1行ずつを絞り、こちらは束ねた後のまとまりを絞る。評価の順はFROM→WHERE→GROUP BY→HAVING→SELECT→ORDER BY。この順を押さえていれば、集約関数をWHERE句へ書けない理由も、SELECT句で付けた別名をこの句で使えない理由も、同じ1つの理由だと分かる。
関連用語
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。