集計用SQL10選

SQL

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 の間の値を取り、正の値は正の相関、負の値は負の相関を示します。このクエリは、価格と数量の関係を分析するのに役立ちます。

これらのクエリは、さまざまなデータ分析タスクに対応しており、データの集計、比較、トレンド分析、相関分析などの基本的な分析を実行するための基盤を提供します。

コメント

タイトルとURLをコピーしました