GROUP BY句 【GROUP BY clause】
概要
GROUP BY句(GROUP BY clause)とは、リレーショナルデータベースの操作や問い合わせに用いるSQLで、抽出した行をグループ化し、グループごとに何らかの集計値を算出するもの。SELECT文の中で使用する。SELECT文で抽出した行に対し、指定した列の値が同一である行同士を一つのグループとしてまとめ、グループごとに一つの値を返す。どんな値を返すかは集計関数によって指定し、「COUNT」(行数カウント)や「SUM」(合計値)、「AVG」(平均値)などを用いる。
例えば、「SELECT COUNT(*) AS Count, AVG(Age) AS AvgAge FROM Users GROUP BY Region」のように指定すると、Usersテーブルの行をRegionフィールドの値が同一であるもの同士でグループ化し、その行数をCountとして、Ageフィールドの平均値をAvgAgeとして返す。
対象をテーブル全体ではなく指定した条件に基づいて絞り込みたい場合は末尾にHAVING句を付け加える。例えば、先のクエリの末尾に「HAVING Age > 20」を加えると、Ageフィールドが20より大きい行のみを対象に集計を行う。
(2022.4.7更新)