情報処理安全確保支援士暗記無料で始める

GROUP BYと集約関数とは?ぐるーぷばいとしゅうやくかんすう

GROUP BYと集約関数とは、SELECTの結果を指定した列の値ごとにまとまりへ分け、まとまり単位でCOUNT・SUM・AVG・MAX・MINといった集約関数の値を返す構文。SELECT句に書けるのはグループ化に使った列と集約関数の結果だけで、まとまり自体に対する絞り込み条件はHAVING句に書く。

最終更新:2026-10-06

試験情報

情報処理安全確保支援士試験の頻出用語/午前II

情報処理安全確保支援士を最短で暗記・合格する →

背景

明細を1行ずつ返すだけでは「何件あるか」「合計いくらか」が分からず、アプリケーション側が全件を取り寄せて数えることになり、転送量も処理時間も無駄になる。集計をDBMSの側で済ませるために用意された構文である。支援士では、認証ログやアクセスログから異常の兆候を数え上げる問合せの土台としてこの構文が前提になる。

具体例

SELECT 送信元IP, COUNT(*) FROM 認証ログ WHERE 結果='失敗' GROUP BY 送信元IP HAVING COUNT(*) >= 100 と書けば、失敗が100回以上に達した送信元だけを回数付きで取り出せる。総当たり攻撃の兆候を拾う定番の形で、PostgreSQLでもMySQLでも同じ構文が使える。

試験での引っ掛け

WHEREは集約する前の行を絞り、HAVINGは集約した後のまとまりを絞る。COUNT(*)は行数を数えるがCOUNT(列名)はその列がNULLの行を数えない、という違いも設問で効く。

関連用語

解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。

情報処理安全確保支援士を最短で暗記・合格する →

試験での特徴
  • 分野:午前II
  • WHEREは集約する前の行を絞り、HAVINGは集約した後のまとまりを絞る。