SQLで異なるテーブルに存在するデータを集約する方法

この記事ではSQLを用いた異なるテーブルに存在するデータの集約方法について解説します。具体的なクエリの書き方から、その背後にある論理までを詳細に説明します。

目次

はじめに

データベースにおいて、異なるテーブルに散らばったデータを効率よく集約するスキルは非常に価値があります。特に、複数のテーブルから情報を取得し、一つの結果セットとして出力する必要がある場合、この技術は不可欠です。

前提知識

この記事は、SQLの基本的なSELECT文やJOINの知識がある方を対象としています。

SQLのJOINとは

JOINは、複数のテーブルからデータを取得する際の基本的な操作です。

INNER JOIN

INNER JOINは、複数のテーブルに共通して存在するデータのみを取得します。

SELECT A.id, A.name, B.amount
FROM table_A AS A
INNER JOIN table_B AS B ON A.id = B.id;

LEFT JOIN

LEFT JOINは、主テーブルのデータは全て保持しつつ、対象テーブルのマッチするデータを取得します。

SELECT A.id, A.name, B.amount
FROM table_A AS A
LEFT JOIN table_B AS B ON A.id = B.id;

異なるテーブルのデータ集約の実例

実際の業務でよく使用するパターンを以下に示します。

テーブルの構造

テーブル名カラム名データ型
商品テーブル商品ID整数型
商品名文字列型
テーブル構造1
テーブル名カラム名データ型
注文テーブル注文ID整数型
商品ID整数型
数量整数型
テーブル構造2

SQLクエリ例

以下は、商品テーブルと注文テーブルから商品名とその合計注文数量を取得するSQLクエリです。

SELECT P.商品名, SUM(O.数量)
FROM 商品テーブル AS P
LEFT JOIN 注文テーブル AS O ON P.商品ID = O.商品ID
GROUP BY P.商品名;

まとめ

SQLにおける異なるテーブルからのデータ集約は、特に業務で複数のテーブルを扱う際には避けて通れないスキルです。JOINを駆使することで、効率的なデータ取得と分析が可能になります。この記事が、その一助になれば幸いです。

コメント

コメントする

目次