MySQL での累計合計の効率的な計算
変数割り当てを使用して累計を計算する MySQL の従来のアプローチは現在非推奨です。 この記事では、非推奨の機能に依存せずに同じ結果を達成するための最新の効率的な方法を示します。
単一の最適化されたクエリにより、優れたソリューションが提供されます。
<code class="language-sql">SET @running_total := 0; SELECT DAYOFYEAR(`date`) AS day_of_year, COUNT(*) AS daily_count, (@running_total := @running_total + COUNT(*)) AS running_total FROM `orders` WHERE `hasPaid` > 0 GROUP BY day_of_year ORDER BY day_of_year;</code>
このクエリは、変数 @running_total
をゼロに初期化します。 コア機能は (@running_total := @running_total COUNT(*))
式にあります。これにより、@running_total
が毎日の COUNT(*)
とともに累積的に更新され、毎日のカウント (running_total
) および年間の日 (daily_count
) とともに累計 (day_of_year
) が生成されます。 その結果、簡潔で効果的な累計計算が行われ、非推奨の変数処理の必要がなくなります。
以上が非推奨の変数を使用せずに MySQL で累計を計算する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。