ホームページ >データベース >mysql チュートリアル >MySQL で累計を効率的に計算するにはどうすればよいですか?
MySQL 累計: ユーザー変数を使用したソリューション
この記事の当初のタイトルは「MySQL での累計の計算」であり、以前の列値の累積合計を表示する列をテーブルに追加することを目的としています。ただし、提供された回答には、式でのユーザー変数の使用は現在非推奨であり、将来のバージョンでは削除されると記載されています。したがって、累計変数を初期化し、数学的計算を使用して単一のクエリを実行して目的の結果を得る、より単純なソリューションを提供します。
提供されるクエリは次のとおりです:
<code class="language-sql">SET @runtot:=0; SELECT q1.d, q1.c, (@runtot := @runtot + q1.c) AS rt FROM (SELECT DAYOFYEAR(`date`) AS d, COUNT(*) AS c FROM `orders` WHERE `hasPaid` > 0 GROUP BY d ORDER BY d) AS q1</code>
このクエリは、まず SET ステートメントを使用してユーザー変数 @runtot を 0 に初期化します。次に、サブクエリを実行して、注文テーブルから必要なデータを取得します。最後に、外側のクエリはサブクエリの結果を累計計算と組み合わせます。
結果のテーブルには、各行の列 c の累計を表す rt という追加の列が含まれます。このソリューションは、式での非推奨のユーザー変数の使用を回避し、単一のクエリ実行でより効率的なアプローチを提供します。
以上がMySQL で累計を効率的に計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。