ホームページ >データベース >mysql チュートリアル >ウィンドウ関数を使用してPostgreSQLで累積合計を計算する方法?
PostgreSQLでの累積和の計算
データ処理では、特定のフィールドの累積合計または累計を計算する必要があることがよくあります。 PostgreSQL では、これはウィンドウ関数を使用して簡単に実現できます。
ウィンドウ関数の概要
ウィンドウ関数を使用すると、特定の条件に基づいてグループ化された行に対して計算を実行できます。この例では、行を circle_id
でグループ化し、amount
フィールドの累積合計を計算します。
累積合計を計算するクエリ
次のクエリは、累積合計を計算する方法を示しています。
<code class="language-sql">SELECT ea_month, id, amount, ea_year, circle_id, sum(amount) OVER (PARTITION BY circle_id ORDER BY ea_year, ea_month) AS cum_amt FROM tbl ORDER BY circle_id, ea_year, ea_month;</code>
このクエリ内:
PARTITION BY
句は、行を circle_id
列ごとにグループ化します。 ORDER BY
句は、各パーティション内の行を ea_year
と ea_month
で並べ替えます。 OVER
句は、各パーティションから現在の行までの行に sum()
関数を適用するウィンドウを定義します。 cum_amt
列に格納されます。 日時データの処理
ea_year
列と ea_month
列が文字列として保存されている場合、クエリは時系列ではなくアルファベット順に並べ替えられます。正しく並べ替えるには、計算を実行する前に日付型に変換することを検討してください。
ピアを除外します
PostgreSQL 11 以降では、frame_exclusion
オプションを使用して、ウィンドウ関数でのピアの処理方法を制御できます。これにより、特定の行を計算に含めたり除外したりできます。
これらの手順に従って、PostgreSQL で累積合計を効率的に計算し、データに関する貴重な洞察を得ることができます。
以上がウィンドウ関数を使用してPostgreSQLで累積合計を計算する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。