MySQL の累計計算: 実用的な例
表形式のデータを扱う場合、多くの場合、効率的な分析のために累計を計算する必要があります。 この例では、MySQL 内で毎日の注文数の累計を計算する方法を示します。 1 日あたりの注文を数えるクエリから始めます。
<code class="language-sql">SELECT DAYOFYEAR(`date`) AS d, COUNT(*) AS daily_count FROM `orders` WHERE `hasPaid` > 0 GROUP BY d ORDER BY d</code>
これにより、次のような結果が得られます:
d | daily_count |
---|---|
20 | 5 |
21 | 7 |
22 | 12 |
23 | 4 |
累計列を追加するには、ユーザー変数を使用します。
<code class="language-sql">SET @running_total:=0; SELECT q1.d, q1.daily_count, (@running_total := @running_total + q1.daily_count) AS running_total FROM (SELECT DAYOFYEAR(`date`) AS d, COUNT(*) AS daily_count FROM `orders` WHERE `hasPaid` > 0 GROUP BY d ORDER BY d) AS q1;</code>
このコードは、変数 @running_total
をゼロに初期化します。 内部クエリ (q1
) は、日および毎日の注文数を選択します。次に、外側のクエリは q1
を反復処理し、毎日のカウントを @running_total
に追加し、累積合計を running_total
列に保存します。
出力には累計が含まれるようになりました:
d | daily_count | running_total |
---|---|---|
20 | 5 | 5 |
21 | 7 | 12 |
22 | 12 | 24 |
23 | 4 | 28 |
この強化されたクエリは累計を提供し、データ分析と視覚化を簡素化します。
以上がMySQL で毎日の注文数の累計を計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。