1-4 HAVING句の力

データの歯抜けを探す

現在の標準SQLでは HAVING句を単独で使える。 ただしその場合、SELECT句で元テーブルの列を参照できなくなるので、定数を指定するか集約関数を使う必要がある。

HAVING句でサブクエリ:最頻値を求める

GROUP BYは、もとの集合から部分集合を作る働きをする。

HAVING句で自己結合:メジアンを求める

大小関係に基づいて部分集合を作るなら、自己非等値結合。

NULLを含まない集合を探す

COUNT(*)はNULLを数える。COUNT(列名)はNULLを除外して集計する。

特定の条件を満たす集合に含まれるかどうかを決める関数。 特性関数

関係除算でバスケット解析

ひとつの実体についての情報が複数行に分散して存在する場合、WHERE句で単純にORやINで条件を指定しても正しい結果は得られない。 WHERE句で指定する条件は、あくまで1行について適用されるから。

まとめ

WHERE句は 集合の要素 の性質を調べる道具、対してHAVING句は 集合自身 の性質を調べる道具。