1. 基本的な集計
目的: テーブル内の総行数(ここでは売上件数)をカウントします。
SELECT COUNT(*) AS total_sales
FROM sales;
説明: COUNT(*)
はテーブル内の全行数をカウントします。このクエリは、sales
テーブル内の総売上件数を取得します。
2. グループ化と集計
目的: カテゴリごとに売上の総額を計算します。
SELECT category, SUM(amount) AS total_amount
FROM sales
GROUP BY category;
説明: GROUP BY
はデータをカテゴリごとにグループ化し、SUM(amount)
で各カテゴリの売上の総額を計算します。これにより、各カテゴリごとの売上合計が得られます。
3. 平均値の計算
目的: 商品の平均価格を計算します。
SELECT AVG(price) AS average_price
FROM products;
説明: AVG(price)
は price
列の平均値を計算します。このクエリは、products
テーブル内の全商品の平均価格を取得します。
4. 最大値と最小値の取得
目的: 商品の最大価格と最小価格を取得します。
SELECT MAX(price) AS max_price, MIN(price) AS min_price
FROM products;
説明: MAX(price)
は price
列の最大値を、MIN(price)
は price
列の最小値をそれぞれ取得します。このクエリは、products
テーブル内の商品の最高価格と最低価格を取得します。
5. 時系列データの集計
目的: 日別の売上合計を計算します。
SELECT DATE(sale_date) AS sale_day, SUM(amount) AS daily_sales
FROM sales
GROUP BY DATE(sale_date);
説明: DATE(sale_date)
は sale_date
列の日付部分を抽出します。GROUP BY DATE(sale_date)
で日別にグループ化し、SUM(amount)
でその日の売上合計を計算します。
6. 条件付き集計
目的: 2023年以降に登録した顧客数を地域別に集計します。
SELECT region, COUNT(*) AS total_customers
FROM customers
WHERE signup_date >= '2023-01-01'
GROUP BY region;
説明: WHERE signup_date >= '2023-01-01'
で2023年1月1日以降に登録した顧客をフィルタリングし、GROUP BY region
で地域ごとにグループ化してカウントします。
7. 上位N件の取得
目的: 売上の多いトップ10の商品を取得します。
SELECT product_name, SUM(amount) AS total_sales
FROM sales
GROUP BY product_name
ORDER BY total_sales DESC
LIMIT 10;
説明: GROUP BY product_name
で商品ごとにグループ化し、SUM(amount)
で売上合計を計算します。ORDER BY total_sales DESC
で売上合計の降順に並べ、LIMIT 10
で上位10件を取得します。
8. 窓関数を使った累積集計
目的: 累積売上を計算します。
SELECT sale_date, amount,
SUM(amount) OVER (ORDER BY sale_date) AS cumulative_sales
FROM sales;
説明: SUM(amount) OVER (ORDER BY sale_date)
は sale_date
で並べた順に累積売上を計算します。これにより、各日付における累積売上が得られます。
9. パーセンタイルの計算
目的: 売上金額の90パーセンタイルを計算します。
SELECT PERCENTILE_CONT(0.9) WITHIN GROUP (ORDER BY amount) AS percentile_90
FROM sales;
説明: PERCENTILE_CONT(0.9) WITHIN GROUP (ORDER BY amount)
は amount
列の値を昇順に並べ、90パーセンタイルの値を計算します。90パーセンタイルは、全売上のうち90%がこの値以下である点を示します。
10. 相関分析
目的: 価格と数量の相関係数を計算します。
SELECT CORR(price, quantity) AS price_quantity_correlation
FROM sales;
説明: CORR(price, quantity)
は price
列と quantity
列の相関係数を計算します。相関係数は -1 から 1 の間の値を取り、正の値は正の相関、負の値は負の相関を示します。このクエリは、価格と数量の関係を分析するのに役立ちます。
これらのクエリは、さまざまなデータ分析タスクに対応しており、データの集計、比較、トレンド分析、相関分析などの基本的な分析を実行するための基盤を提供します。
コメント