目次
ウィンドウ処理とは
ウィンドウ処理(Window Function)とは、データセットの特定の範囲(ウィンドウ)に対して関数を適用するSQLの機能です。集計、ランキング、平均などの計算を行う際に、全体ではなく、特定の範囲やグループ内でのみ処理を行いたい場合に使用されます。ウィンドウ関数の種類
- 集計関数:SUM, AVG, COUNTなど
- ランキング関数:ROW_NUMBER, RANK, DENSE_RANKなど
- 解析関数:LEAD, LAG, FIRST_VALUEなど
ウィンドウ処理の応用例
ウィンドウ処理は、多くの実践的なシナリオで利用されます。以下にいくつかの応用例を挙げます。時系列データの分析
時系列データに対して移動平均や累積合計を計算する際にウィンドウ関数が有効です。例えば、日々の売上データに対して、7日間の移動平均を計算することで、短期的なトレンドを捉えることができます。SELECT
Date,
Sales,
AVG(Sales) OVER (ORDER BY Date ROWS BETWEEN 6 PRECEDING AND CURRENT ROW) AS MovingAverage
FROM SalesData;
ランキングと比較
特定のカテゴリやグループ内でのランキングを作成することができます。たとえば、各部門で最も売上の高い商品をランキング形式で表示することが可能です。SELECT
Department,
Product,
Sales,
RANK() OVER (PARTITION BY Department ORDER BY Sales DESC) AS Rank
FROM ProductSales;
前行・次行との比較
LEADやLAG関数を使用することで、ある行のデータを前行や次行のデータと比較することが可能です。これは、時系列データで前日比の計算などに使用されます。SELECT
Date,
Sales,
LAG(Sales, 1) OVER (ORDER BY Date) AS PreviousDaySales
FROM SalesData;
コメント