SQLを使ってデータを探索し、分析する方法について解説します。注文データ(Orders)、ユーザーデータ(Users)、製品データ(Products)の3つのテーブルを使用します。
ここでは、SQLの基本的な構文と共に、フィルタリング、グループ化、集計、結合など、データ分析で頻繁に使用するSQLの機能を詳しく解説します。
SQLfiddleというサイトで確認できます。
http://sqlfiddle.com/
左側でテーブルを作成してデータを投入、右側でデータを抽出するためのSELECT文を入れることでデータを出すことができます。下記の画像はOrdersテーブルの全クエリのデータを抽出した結果の画像です。

3つのテーブルをSQLで作成します。
CREATE TABLE Orders (
order_id INT,
user_id INT,
product_id INT,
quantity INT,
order_date DATE
);
CREATE TABLE Users (
user_id INT,
user_name VARCHAR(255),
birth_date DATE,
prefecture VARCHAR(255)
);
CREATE TABLE Products (
product_id INT,
product_name VARCHAR(255),
price DECIMAL(10,2),
rating DECIMAL(2,1)
);
INSERT INTO Orders (order_id, user_id, product_id, quantity, order_date)
VALUES (1, 1, 1, 2, '2023-01-10'),
(2, 2, 1, 1, '2023-01-15'),
(3, 1, 2, 1, '2023-01-20'),
(4, 3, 3, 5, '2023-01-25'),
(5, 2, 2, 3, '2023-02-01'),
(6, 1, 3, 2, '2023-02-10'),
(7, 3, 1, 4, '2023-02-15'),
(8, 2, 3, 1, '2023-02-20'),
(9, 1, 1, 1, '2023-03-01'),
(10, 3, 2, 2, '2023-03-10');
INSERT INTO Users (user_id, user_name, birth_date, prefecture)
VALUES (1, 'Tanaka', '1985-03-12', 'Tokyo'),
(2, 'Suzuki', '1990-07-25', 'Osaka'),
(3, 'Sato', '1987-11-30', 'Hokkaido');
INSERT INTO Products (product_id, product_name, price, rating)
VALUES (1, 'Apple', 100, 4.5),
(2, 'Orange', 50, 4.2),
(3, 'Banana', 30, 4.7);
注文データ、ユーザーデータ、製品データが格納された3つのテーブルが作成されました。この3つのテーブルからデータを取得して分析する方法を紹介します。
SELECT文の基本
最初に、Ordersテーブルから全てのデータを取得します。「*」を活用することで、全てのデータを取得することができます。
SELECT * FROM Orders;

WHERE句
次に、特定の条件を満たす行を取得する方法を見てみましょう。WHERE句を使用します。
例えば、Usersテーブルから生年月日が’1985-03-12’であるユーザーのデータを取得します。
SELECT * FROM Users
WHERE birth_date = '1985-03-12';

LIKEの使用
ワイルドカードを使用して部分一致検索を行うには、LIKE演算子を使用します。
例えば、Usersテーブルからユーザー名が’Sato’で始まるユーザーのデータを取得します。
SELECT * FROM Users WHERE user_name LIKE 'Sato%';

BETWEENの使用
特定の範囲内の値を取得するには、BETWEEN演算子を使用します。
例えば、Productsテーブルから価格が50以上100以下の商品データを取得します。
SELECT * FROM Products
WHERE price BETWEEN 50 AND 100;

INの使用
特定のいずれかの値を持つ行を取得するには、IN演算子を使用します。
例えば、Usersテーブルから都道府県が’Tokyo’または’Osaka’のユーザーデータを取得します。
SELECT * FROM Users
WHERE prefecture IN ('Tokyo', 'Osaka');

以上、SQLの基本的な機能を使ったデータの取得方法について説明しました。
データ分析でお困りの企業様の課題解決をサポートします。お気軽に下記よりお問い合わせください。
