SQL GROUP BY句について ~GROUP BY句の解説と使用例~

SQLのGROUP BYとは?GROUP BY句の構文や使用例を解説

ENGINEER.CLUB編集部

ENGINEER.CLUB編集部

仕事や勉強等で、テーブルのカラムを集計して件数や最大値を取得する処理をSQLで行いたいと思ったことはありませんか?

ここでは、上記の処理をSQLで行う「GROUP BY」句について基本的な説明をしていきます。

この記事を作成した環境は下記になります。

データベース:MySQL8.1.0
SQL実行ツール:A5:SQL Mk-2 (ver2.18.3)

以下の説明では、こちらのテーブルを使用します。

sample01

Companynamevalue
A社マウス1200
B社マウス1500
C社マウス2000
A社キーボード3500
A社PCケース4500
B社モニター18000
C社モニター25000
C社USBケーブル300
A社USBケーブル1400
One dayインターン

1.GROUP BY句について

1-1.GROUP BY句とは

GROUP BY句は、指定したカラムをグループ化する機能です。指定したカラムの合計値、件数、平均、最大、最小も取得できます。

1-2.GROUP BY句の構文

SELECT [カラム名] FROM [テーブル名] GROUP BY [グループ化したいカラム名、条件];

2.GROUP BY句の使用例

2-1.基本的な使用例

重複しない商品名を取得する

SELECT name AS '商品名' FROM sample01 GROUP BY name;

結果:

商品名sum(value)
マウス4700
キーボード3500
PCケース4500
モニター43000
USBケーブル1700

2-2.グループ化したデータから値を取得する場合

2-2-1.合計値を取得

各商品のvalueの合計値を取得する

SELECT name AS '商品名', SUM(value) FROM sample01 GROUP BY name;

結果:

商品名sum(value)
マウス4700
キーボード3500
PCケース4500
モニター43000
USBケーブル1700

2-2-2.件数を取得

各会社の商品数を取得する

SELECT Company AS '会社名', COUNT(name) AS '商品数' FROM sample01 GROUP BY Company;

結果:

会社名商品数
A社4
B社2
C社3

2-2-3.平均値を取得

各商品の平均値段を取得する

SELECT name AS '商品名', ROUND(AVG(value)) AS '値段の平均' FROM sample01 GROUP BY name;

結果:

商品名sum(value)
マウス1567
キーボード3500
PCケース4500
モニター21500
USBケーブル850

2-2-4.最大値を取得

各商品の最大値を取得する

SELECT name AS '商品名', MAX(value) AS '最大の値段' FROM sample01 GROUP BY name;

結果:

商品名sum(value)
マウス2000
キーボード3500
PCケース4500
モニター25000
USBケーブル1400

2-2-5.最小値を取得

各商品の最小値を取得する

SELECT name AS '商品名', MIN(value) AS '最小の値段' FROM sample01 GROUP BY name;

結果:

商品名sum(value)
マウス1200
キーボード3500
PCケース4500
モニター18000
USBケーブル300

2-3.それ以外の使い方

各商品の値段が1500以上の件数を取得する

SELECT name AS '商品名', COUNT(value) AS '1500以上の件数' FROM sample01 GROUP BY name, value > 1500;

結果:

商品名sum(value)
マウス2
マウス1
キーボード1
PCケース1
モニター2
USBケーブル2

3.最後に

GROUP BY句は、上記以外にも応用方法が多数あります。業務に勉強に役立ててください。

私たちは、全てのエンジニアに市場価値を高め自身の望む理想のキャリアを歩んでいただきたいと考えています。もし、今あなたが転職を検討しているのであればこちらの記事をご一読ください。理想のキャリアを実現するためのヒントが見つかるはずです。

『技術力』と『人間力』を高め市場価値の高いエンジニアを目指しませんか?

『技術力』と『人間力』を高め市場価値の高いエンジニアを目指しませんか?

私たちは「技術力」だけでなく「人間力」の向上をもって遙かに高い水準の成果を出し、関わる全ての人々に感動を与え続ける集団でありたいと考えています。

高い水準で仕事を進めていただくためにも、弊社では次のような環境を用意しています。

  • 定年までIT業界で働くためのスキル(技術力、人間力)が身につく支援
  • 「給与が上がらない」を解消する6ヶ月に1度の明確な人事評価制度
  • 平均残業時間17時間!毎週の稼動確認を徹底しているから実現できる働きやすい環境

現在、株式会社ボールドでは「キャリア採用」のエントリーを受付中です。

まずは以下のボタンより弊社の紹介をご覧いただき、あなたの望むキャリアビジョンをエントリーフォームより詳しくお聞かせください。

コメント

26卒 新卒学生向け主催企業:株式会社ボールド
どんなIT企業なら理想のエンジニアになれるのか?

2時間でIT業界の全てが分かるOne dayインターン

26卒 新卒学生向け主催企業:株式会社ボールド
どんなIT企業なら理想のエンジニアになれるのか?

2時間でIT業界の全てが分かるOne dayインターン