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種。登録不要。