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