SQLの`GROUP BY`句は非常に便利な機能で、特に階層データの集計に強力な助けになります。この記事では、`GROUP BY`を使って階層データを効率よく集計する方法を具体的な例と共に解説します。
目次
GROUP BYの基本
GROUP BY句は、指定したカラムの値が同じ行をグループ化し、それぞれのグループに対して集計関数を適用するSQLの機能です。例えば、`SUM`や`AVG`、`COUNT`などの集計関数と組み合わせて使用します。
基本的なGROUP BYの使用方法
基本的なGROUP BYの使用方法は以下のようです。
SELECT column1, aggregate_function(column2)
FROM table
GROUP BY column1;
階層データとは
階層データとは、親子関係や階層関係にあるデータのことを指します。たとえば、会社内の部署とその部署に所属する従業員、商品カテゴリとその下の商品などがこれに該当します。
GROUP BYで階層データを集計する方法
階層データを集計する際には、親子関係や階層関係を考慮しながら集計を行う必要があります。
階層データの集計例
例えば、商品カテゴリと商品の価格が以下のようなテーブルで与えられているとします。
カテゴリ | 商品 | 価格 |
---|---|---|
食品 | リンゴ | 200 |
食品 | バナナ | 100 |
家電 | テレビ | 50000 |
家電 | 冷蔵庫 | 60000 |
このデータに対して、各カテゴリごとの商品の平均価格を求めるSQL文は以下の通りです。
SELECT カテゴリ, AVG(価格) as 平均価格
FROM 商品テーブル
GROUP BY カテゴリ;
結果の説明
このSQL文を実行すると、各カテゴリに属する商品の平均価格が計算されます。
カテゴリ | 平均価格 |
---|---|
食品 | 150 |
家電 | 55000 |
まとめ
SQLの`GROUP BY`句を使って階層データの集計が容易に行えることを学びました。特に、階層関係にあるデータを効率よく集計するためのテクニックとして、これは非常に役立つでしょう。複雑な階層データでも、適切にGROUP BY句を使用すれば、その集計が簡単になります。
created by Rinker
¥4,554
(2024/11/22 10:55:01時点 Amazon調べ-詳細)
コメント