【SQL 入門編#3】データの集計とグループ化について

GROUP BY句とHAVING句の使い方
【データの集計とグループ化】

前回の記事では、WHERE句とJOIN句を使ってデータを絞り込んだり、複数のテーブルを結合する方法を学びました。

今回は、データをグループ化し、集計を行うためのGROUP BY句と、集計後に条件を設定するためのHAVING句

ついて解説します。

目次

1.GROUP BY句とは?

GROUP BY句は、データを特定の列でグループ化し、そのグループごとに集計を行うために使用されます。

例えば、以下のような「売上」テーブルがあるとします。

売上テーブル

id商品名個数価格
1ペン10100
2ノート5200
3ペン7100
4消しゴム250
5ノート3200

このテーブルで、商品ごとの合計売上個数を計算したい場合、GROUP BY句を使用します。

SELECT 商品名, SUM(個数) AS 合計個数
FROM 売上
GROUP BY 商品名;

このクエリの結果は以下のようになります。

商品名合計個数
ペン17
ノート8
消しゴム2

2.集計関数の紹介(COUNT, SUM, AVG, MAX, MIN)

SQLには、グループ化されたデータに対してさまざまな集計を行う関数があります。主な集計関数は以下の通りです。

  • COUNT(): グループ内の行数をカウントします。
  • SUM(): グループ内の値を合計します。
  • AVG(): グループ内の平均値を計算します。
  • MAX(): グループ内の最大値を取得します。
  • MIN(): グループ内の最小値を取得します。

例えば、商品ごとの売上金額の平均を求めたい場合、**AVG()**関数を使用します。

SELECT 商品名, AVG(価格) AS 平均価格
FROM 売上
GROUP BY 商品名;

結果は以下のようになります。

商品名平均価格
ペン100
ノート200
消しゴム50

3.HAVING句とは?

HAVING句は、GROUP BY句でグループ化した後に、集計結果に条件を付けるために使用されます。

HAVING句は、WHERE句と似ていますが、WHERE句はグループ化前のデータに対して条件を設定し、

HAVING句はグループ化後のデータに対して条件を設定します。

例えば、商品ごとの売上個数が10個以上の商品のみを表示したい場合、HAVING句を使います。

SELECT 商品名, SUM(個数) AS 合計個数
FROM 売上
GROUP BY 商品名
HAVING SUM(個数) >= 10;

結果は以下のようになります。

商品名合計個数
ペン17

4.GROUP BY句とHAVING句の使い方

GROUP BY句とHAVING句を組み合わせて、より複雑な集計と条件指定が可能になります。

例えば、価格の合計が500以上となる商品グループを表示したい場合は、次のように書きます。

SELECT 商品名, SUM(価格 * 個数) AS 合計売上
FROM 売上
GROUP BY 商品名
HAVING SUM(価格 * 個数) >= 500;

結果は以下のようになります。

商品名合計売上
ペン1700
ノート1600

5.まとめ

今回の記事では、SQLのGROUP BY句HAVING句を使ったデータのグループ化と集計方法について解説しました。

これらを使うことで、より高度なデータ集計や分析が可能になります。

SQLの集計機能は、特にデータ分析やレポート作成の際に非常に有効です。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次