単一クエリを使用して MySQL で累計を効率的に計算する
このガイドでは、データに 列と、支払いが成功したことを示す date
フラグが含まれていることを前提として、毎日の注文数の累計を計算する単一の MySQL クエリを示します。hasPaid
<code class="language-sql">SET @runtot:=0; SELECT DATE(`date`) AS d, COUNT(*) AS c, (@runtot := @runtot + COUNT(*)) AS rt FROM `orders` WHERE `hasPaid` > 0 GROUP BY d ORDER BY d;</code>
をゼロに初期化します。 次に、コア ロジックは 1 日の注文数 (@runtot
) を計算し、同時に単一の COUNT(*) AS c
ステートメント内で累計 (@runtot := @runtot COUNT(*) AS rt
) を更新します。これにより、サブクエリや複数のパスが不要になり、効率が向上します。 SELECT
句は結果を日ごとにグループ化し、GROUP BY d
により累計が順番に計算されるようにします。 このメソッドは、毎日の注文数 (ORDER BY d
) および日 (rt
) とともに累計列 (c
) を効率的に生成します。d
以上がMySQL で 1 つのクエリで累計を計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。