SQLでGROUP BYを使った階層データの集計方法

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
テーブル1: 商品カテゴリと価格

このデータに対して、各カテゴリごとの商品の平均価格を求めるSQL文は以下の通りです。

SELECT カテゴリ, AVG(価格) as 平均価格
FROM 商品テーブル
GROUP BY カテゴリ;

結果の説明

このSQL文を実行すると、各カテゴリに属する商品の平均価格が計算されます。

カテゴリ平均価格
食品150
家電55000
テーブル2: カテゴリごとの平均価格

まとめ

SQLの`GROUP BY`句を使って階層データの集計が容易に行えることを学びました。特に、階層関係にあるデータを効率よく集計するためのテクニックとして、これは非常に役立つでしょう。複雑な階層データでも、適切にGROUP BY句を使用すれば、その集計が簡単になります。

コメント

コメントする

目次