SQL GROUP BY — 集計のための行グループ化

GROUP BY は指定列で行をグループ化し、COUNT/SUM/AVG などの集計をグループ単位で適用します。SELECT の非集計列は GROUP BY に含める必要があります (PostgreSQL/標準は厳格、MySQL は ONLY_FULL_GROUP_BY 設定次第)。

インタラクティブな DevRef Hub を開く →

主要データ

構文SELECT dept, COUNT(*) FROM employees GROUP BY dept;
MySQL ロールアップGROUP BY dept WITH ROLLUP
PostgreSQL ロールアップGROUP BY ROLLUP (dept)
規則非集計列は GROUP BY に必要

よくある質問

GROUP BY は何をしますか?

列で行をグループ化し、集計関数をグループ単位で実行します。

なぜ列で GROUP BY エラーになる?

SELECT の非集計列を GROUP BY に入れる必要があるためです (MySQL は ONLY_FULL_GROUP_BY)。

関連ページ

SQL GROUP BY は GOAT Lab の DevRef Hub の一部です。登録不要・オフラインでも使える無料リファレンスで、上のツールから任意の値を計算できます。

広告掲載

GOAT Lab の一部 — 科学・エンジニアリング・開発者向けの無料ブラウザツール26種。登録不要。