MySQL で累積合計を効率的に計算するにはどうすればよいですか?
MySQL の行の累積合計
時間ごとにグループ化された各 ID の累積合計を決定するには、一般的なアプローチが使用されます。 MySQLで。 MySQL の以前のバージョンには分析関数が存在しないため、相関サブクエリまたは MySQL ユーザー変数という 2 つの主要な方法が採用されています。
相関サブクエリ アプローチ
この戦略一致基準に基づいて各行の累積合計を計算するサブクエリが含まれます。ただし、大量のデータセットではリソースを大量に消費する可能性があります。
ユーザー変数アプローチ
より効率的な方法には、MySQL ユーザー変数と、ORDER BY 句を使用したラップされたクエリが含まれます。行処理順序を確保するため。次の手順は、このアプローチの概要を示しています。
- 既存のセッション値からの干渉を避けるためにユーザー変数を初期化します。
- ORDER BY 句を使用して、元のクエリをインライン ビューとして埋め込みます。
- SELECT ステートメント内で累積合計計算を実行し、前の行の値と現在の行の値を比較します。
- 現在の行の値を割り当てます。行の値を次の反復のユーザー変数に追加します。
このアプローチの例:
SELECT IF(@prev_id = c.id AND @prev_day = c.day , @cumtotal := @cumtotal + c.amount , @cumtotal := c.amount) AS cumulative_total , @prev_id := c.id AS `id` , @prev_day := c.day AS `day` , c.hr , c.amount AS `amount' FROM ( SELECT @prev_id := NULL , @prev_day := NULL , @cumtotal := 0 ) i JOIN ( SELECT id, day, hr, amount FROM ( // Original query with multiple joins and unions ) a LEFT JOIN ( // Unions on multiple tables ) b ON a.id = b.id ORDER BY 1, 2, 3 ) c
このアプローチにより、MySQL バージョン 8.0 より前のバージョンで累積合計を効率的に計算できます。ウィンドウ関数が導入されたとき。
以上がMySQL で累積合計を効率的に計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Alter Tableステートメントを使用してMySQLのテーブルをどのように変更しますか?

Linuxでmysqlを実行します(phpmyAdminを使用してポッドマンコンテナを使用して/なし)

MACOSで複数のMySQLバージョンを実行する:ステップバイステップガイド

MySQL接続用のSSL/TLS暗号化を構成するにはどうすればよいですか?

人気のあるMySQL GUIツール(MySQL Workbench、PhpMyAdminなど)は何ですか?
