ホームページ >データベース >mysql チュートリアル >Null 値を含むすべての月を月平均に含めるにはどうすればよいですか?
Null 値を持つ月を含む、指定された日付範囲からすべての月を抽出します
日付の範囲に基づいて月次平均を計算する場合、値がゼロまたは欠損している月を含める必要があります。これにより、指定された期間内のすべての月が確実に考慮されます。
MySQL でこれを実現するには、指定された範囲内のすべての月を含む別のテーブルを作成する方法があります。 「日付テーブル」と呼ばれるこのテーブルには、適切な日付、年、その他の関連属性を入力できます。
日付テーブルを使用すると、元のデータ テーブルと LEFT JOIN を実行できます。 。 LEFT JOIN 操作を使用すると、元のテーブルに一致する行がない場合でも、日付テーブルのすべての行が結果に含まれるようになります。その結果、出力には、データがあるかどうかに関係なく、指定された範囲内のすべての月が表示されます。
このアプローチを示すクエリの例を次に示します。
<code class="sql">SELECT `DT`.`myYear`, `DT`.`myMonth`, AVG(`myTable`.`value1`) AS `avg_value_1`, AVG(`myTable`.`value2`) AS `avg_value_2` FROM `dateTable` AS `DT` LEFT JOIN `myTable` ON `dateTable`.`myDate` = `myTable`.`save_date` WHERE `dateTable`.`myDate` BETWEEN '2009-01-01' AND '2009-07-01' GROUP BY `DT`.`myYear`, `DT`.`myMonth`</code>
このクエリは次の値を返します。 2009 年 1 月から 7 月までのすべての月 (元の表にデータがない月も含む)。 AVG() 関数は、データのある月の値の集計を処理しますが、LEFT JOIN 演算は、NULL 値のある月にゼロ平均が割り当てられるようにします。
日付テーブルを利用し、LEFT JOIN を実行することで、データの有無に関係なく、指定された日付範囲内のすべての月を効果的に抽出でき、月平均の包括的な分析が可能になります。
以上がNull 値を含むすべての月を月平均に含めるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。