読み方 : グループバイく

GROUP BY句【GROUP BY clause】

概要

GROUP BY句とはリレーショナルデータベースの操作や問い合わせに用いるSQLで、抽出した行をグループ化し、グループごとに何らかの集計値を算出するもの。SELECT文の中で使用する。
GROUP BY句のイメージ画像

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より大きい行のみを対象に集計を行う。

資格試験などの「GROUP BY句」の出題履歴

▼ 基本情報技術者試験
令8修1/令7修1/令2修6/平31春/平29修12/平28修7/平27修1/平25春】 “中間テスト” 表からクラスごと,教科ごとの平均点を求め,クラス名,教科名の昇順に表示するSQL文中の [ a ] に入れる字句はどれか。
平27修12/平21秋】 “注文明細” 表に対するSQLの構文として,正しいものはどれか。 注文明細(注文番号,注文日,数量)。
この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。