SQL GROUP BY句の使い方!複数条件の設定も!

かんたん!SQL





SQL GROUP BY句の意味や使い方を知りたいときはないでしょうか。


けど、そんな中で悩むことは、

・「SQL GROUP BY句」の意味がわからない
・「SQL GROUP BY句」の使い方がわからない

ですよね。

今回はそんなお悩みを解決する

・「SQL GROUP BY句」の概要と使い方
・「SQL GROUP BY句」の使用例

についてまとめます!

GROUP BY句の基礎

GROUP BY句とは

GROUP BY句は、データベース内のデータを特定の列を基準にグループ化して集計するためのSQL句です。
類似の値を持つ行をグループ化し、そのグループごとに集計を行うことができます。

GROUP BY句の構文

GROUP BY句は以下の構文で使用されます。

SELECT 列1, 列2, 集計関数(列3)
FROM テーブル名
GROUP BY 列1, 列2;

GROUP BY句の中で指定した列に基づいてデータがグループ化され、指定した列以外の列に対して集計関数を適用することができます。

GROUP BY句の例

商品カテゴリ別の売り上げ合計を集計するクエリの例です。
この例では、商品カテゴリごとに売上を合計しています。

SELECT カテゴリ, SUM(売上)
FROM 売上テーブル
GROUP BY カテゴリ;

GROUP BY句の応用

GROUP BY句による集計

GROUP BY句を使用する主な目的は、集計です。
特定の列をグループ化し、それぞれのグループに対して集計関数(SUM、COUNT、AVGなど)を適用することで、集計結果を取得します。

サンプルコード

このクエリは、部署ごとに売上額を集計し、各部署の売り上げ合計を計算します。

SELECT 部署, SUM(売上額) AS 部署総売上額
FROM 売上テーブル
GROUP BY 部署;

GROUP BY句による並び替え

GROUP BY句を使用すると、デフォルトではグループの順序が不定ですが、GROUP BY句の後にORDER BY句を使用することで、グループの順序を指定することができます。

サンプルコード

このクエリは、商品IDごとに売上額を集計し、売上額の高い順に結果を並び替えます。

SELECT 商品ID, SUM(売上額) AS 総売上額
FROM 売上テーブル
GROUP BY 商品ID
ORDER BY 総売上額 DESC;

GROUP BY句による絞り込み

このクエリは、部署ごとに売上額を集計し、部署総売上額が1000を超える部署の結果を表示します。

サンプルコード

SELECT 部署, SUM(売上額) AS 部署総売上額
FROM 売上テーブル
GROUP BY 部署
HAVING 部署総売上額 > 1000;

GROUP BY句による複数条件の設定

GROUP BY句では、複数の列を指定して複数の条件でグループ化することも可能です。複数の列を指定することで、より詳細なグループ化が行えます。

サンプルコード

このクエリは、部署と商品IDごとに売上額を集計し、部署商品別売上額が500を超える結果を表示します。

SELECT 部署, 商品ID, SUM(売上額) AS 部署商品別売上額
FROM 売上テーブル
GROUP BY 部署, 商品ID
HAVING 部署商品別売上額 > 500;

GROUP BY句を使った実務応用事例

売り上げ集計の例

日付ごとの売り上げを集計する際に、GROUP BY句を使用して日付ごとに集計を行い、売り上げ合計を求めることができます。

サンプルデータ

id 商品ID 売上額
1 101 500
2 102 300
3 101 800
4 103 700
5 102 450

サンプルコード

SELECT SUM(売上額) AS 総売上額
FROM 売上テーブル;

結果

総売上額
2750

商品別の売り上げランキングの例

商品ごとの売り上げランキングを作成する際に、商品IDごとに集計して、売り上げの高い順に並べることができます。

サンプルデータ

id 商品ID 売上額
1 101 500
2 102 300
3 101 800
4 103 700
5 102 450

サンプルコード

SELECT 商品ID, SUM(売上額) AS 総売上額
FROM 売上テーブル
GROUP BY 商品ID
ORDER BY 総売上額 DESC;

結果

商品ID 総売上額
101 1300
102 750
103 700

部署別の売り上げ集計の例

従業員の所属部署ごとに売り上げを集計する際に、部署IDごとに集計を行い、部署ごとの売り上げ合計を求めることができます。

サンプルデータ

id 名前 部署
1 従業員A 部署A
2 従業員B 部署B
3 従業員C 部署A
4 従業員D 部署C
5 従業員E 部署B

サンプルコード

SELECT 部署, SUM(売上額) AS 部署総売上額
FROM 売上テーブル
JOIN 従業員テーブル ON 売上テーブル.従業員ID = 従業員テーブル.id
GROUP BY 部署;


結果

部署 部署総売上額
部署A 1300
部署B 750
部署C 700

さいごに

いかがでしょうか。

今回は、

・「SQL GROUP BY句」の概要と使い方
・「SQL GROUP BY句」の使用例

についてまとめました。

また、他にも学習に役に立つ情報がありますので、よろしければご参照頂ければと思います。



この記事の関連キーワード

こちらの記事の関連キーワード一覧です。クリックするとキーワードに関連する記事一覧が閲覧できます。