はじめに
MySQLを使用して複数のテーブルを結合し、データを集計することは一般的な操作です。この記事では、複数のテーブルを結合して集計するための基本的なクエリの作成方法について説明します。
テーブルの作成
まず、以下のようなサンプルデータを持つ2つのテーブルを作成します。
CREATE TABLE users (
user_id INT PRIMARY KEY,
username VARCHAR(255),
age INT
);
CREATE TABLE orders (
order_id INT PRIMARY KEY,
user_id INT,
total_amount DECIMAL(10, 2),
order_date DATE
);
テーブルのデータ挿入
次に、作成したテーブルにサンプルデータを挿入します。
INSERT INTO users VALUES (1, 'Alice', 25);
INSERT INTO users VALUES (2, 'Bob', 30);
INSERT INTO orders VALUES (101, 1, 50.00, '2023-01-01');
INSERT INTO orders VALUES (102, 1, 30.00, '2023-01-02');
INSERT INTO orders VALUES (103, 2, 75.50, '2023-01-03');
テーブルの結合と集計
以下は、ユーザーと注文のテーブルを結合し、各ユーザーごとの総注文金額を求めるクエリの例です。
SELECT users.user_id, username, SUM(total_amount) AS total_spent
FROM users
JOIN orders ON users.user_id = orders.user_id
GROUP BY users.user_id, username;
このクエリでは、users
テーブルとorders
テーブルをuser_id
で結合し、SUM(total_amount)
によって各ユーザーごとの総注文金額を計算しています。GROUP BY
句は、ユーザーごとにグループ化して集計するために使用されます。
これにより、ユーザーごとの総注文金額が表示される結果が得られます。
以上で、MySQLで複数のテーブルを結合して集計する基本的な操作について説明しました。