スポンサーリンク

問題の解答・解説ページ

このページは解説の閲覧モードです。
実力試しをしたい方は、下のボタンからクイズに挑戦してください!

この問題をクイズ形式で解く
問題 No.3145
ある顧客管理システムにおいて、顧客テーブルから特定の郵便番号を持つ顧客の人数を算出するため、開発者がSQLを用いて集計処理を行うことになった。この操作において、特定の条件を満たす行をあらかじめ絞り込んでから集計処理を実行するために用いる句として、最も適切なものはどれか。

【正解の解説】

WHERE句を指定し、集計処理を行う前にあらかじめ特定の条件に合致する行を抽出する。

遊園地のアトラクションに並ぶ前段階で、年齢や身長制限に満たない人をあらかじめ列から外す作業と同じです。SQLでも、無駄なデータを集計対象に含めないことで処理速度を劇的に向上させるためにまずWHERE句で絞り込みを行います。

スポンサーリンク

【その他の選択肢の解説】

HAVING句を指定し、集計処理を行った後で特定の条件に合致する行を抽出する。

試験の採点後に「平均点以上のグループだけを残す」という全体集計の後のフィルター処理です。事前に特定の行を削るWHERE句とは処理するタイミングが逆になるため、初学者が最も混同しやすいポイントとしてよく出題されます。

ORDER BY句を指定し、集計処理を行う前にあらかじめ特定の条件に合致する行を整列する。

本棚の本を五十音順や古い順に並べ替える作業と同じで、不要な本を処分(絞り込み)しているわけではありません。並び替えとデータの抽出をごちゃ混ぜにして覚えていると引っかかる、試験作成者が好む定番の罠です。

GROUP BY句を指定し、集計処理を行った後で特定の条件に合致する行を分類する。

全校生徒をクラスごとに山分けしてクラス別の人数を出すような作業であり、特定の条件に合致しない生徒を最初から除外するわけではありません。集計の切り口を作るグループ化と、対象を絞る抽出を混同させないよう注意が必要です。