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の基本的な機能を使ったデータの取得方法について説明しました。

データ分析でお困りの企業様の課題解決をサポートします。お気軽に下記よりお問い合わせください。

    お名前