SQLステートメントで累計値を計算する方法
SQLでは、サブクエリと集計関数を使用して累計値を計算できます。
売上高を表す sales テーブルがあり、日付けの date フィールドと金額の amount フィールドがあります。日ごとの累計売上高を計算します。
以下に累計値を計算する方法を示します。
SELECT
s1.date,
SUM(s2.amount) AS cumulative_amount
FROM
sales s1
JOIN
sales s2 ON s2.date <= s1.date
GROUP BY
s1.date
ORDER BY
s1.date;
このクエリでは、自身のテーブルに対して自己結合を実行しています。サブクエリ s2 は、現在の日付以下すべての販売レコードを返し、集計関数 SUM を使用して累計売上を計算しています。最後に日付順に結果を出力しています。
小規模データセットには適していますが、データセットが大きい場合はパフォーマンスの問題が生じる可能性があります。その場合は、ウィンドウ関数などの別のテクニックを使用する必要があります。