この記事では、SQLを使用して複数のテーブルからデータを結合し、その結果から最大・最小値を取得する方法について詳しく解説します。日常業務でよく出会う問題であり、このテクニックを理解しておくと、データ解析やレポート作成が格段にスムーズに行えます。
目次
はじめに
データベースに格納された情報を効率よく抽出・分析するには、SQLの高度なクエリが不可欠です。特に、複数のテーブルを結合して一つの集計値(最大値や最小値など)を取得する作業は頻繁にあります。この記事ではその手法について、具体的なSQLクエリと共に説明します。
使用するテーブルの例
この記事で使用するテーブルは以下の2つです。
社員テーブル(employees) | 売上テーブル(sales) |
---|---|
社員ID、社員名 | 売上ID、社員ID、売上金額 |
社員テーブル(employees)の詳細
CREATE TABLE employees (
id INT PRIMARY KEY,
name VARCHAR(50)
);
売上テーブル(sales)の詳細
CREATE TABLE sales (
sale_id INT PRIMARY KEY,
employee_id INT,
amount INT
);
INNER JOINによるテーブル結合
まずは、`INNER JOIN`を用いてテーブルを結合します。このSQLクエリでは、社員テーブルと売上テーブルを`employee_id`で結合します。
SELECT e.name, s.amount
FROM employees e
INNER JOIN sales s ON e.id = s.employee_id;
最大・最小値の取得
次に、`MAX()`と`MIN()`関数を用いて、結合したテーブルから最大・最小の売上金額を取得します。
SELECT e.name, MAX(s.amount), MIN(s.amount)
FROM employees e
INNER JOIN sales s ON e.id = s.employee_id
GROUP BY e.name;
複数テーブルからの最大・最小値の取得
最後に、複数のテーブルを結合し、その上で最大・最小値を取得する全体のSQLクエリは以下の通りです。
SELECT e.name, MAX(s.amount) as "最大売上", MIN(s.amount) as "最小売上"
FROM employees e
INNER JOIN sales s ON e.id = s.employee_id
GROUP BY e.name;
まとめ
この記事では、SQLを用いて複数のテーブルからデータを結合し、最大・最小値を取得する方法について解説しました。具体的なSQLクエリを使って説明を行い、理解を深める手助けをしたことでしょう。この知識を活用して、日常業務のデータ解析やレポート作成を効率化しましょう。
コメント