ホームページ >データベース >mysql チュートリアル >SQLでゼロ値を持つ月を含む日付範囲内のすべての月を表示するにはどうすればよいですか?
値がゼロのものも含め、日付範囲内のすべての月を表示
SQL プログラミングでは、指定された日付範囲内の特定のデータを選択すると、特に欠損値を扱う場合は困難です。この問題は、2 つの日付間のすべての月の月次平均を計算しようとすると発生し、値のない月は表示されません。
解決策
この問題に対処するには、包括的な「日付テーブル」を使用するアプローチをお勧めします。このテーブルには、必要な日付範囲内のすべての月が含まれています。日付テーブルと実際のデータテーブルの間で LEFT JOIN を実行すると、値がゼロの月を含むすべての月が表示されます。
SQL クエリ
以下変更されたクエリには LEFT JOIN テクニックが組み込まれています。
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 `DT`.`myDate` = `myTable`.`save_date` WHERE `DT`.`myDate` BETWEEN '2009-01-01' AND '2009-07-01' GROUP BY `DT`.`myYear`, `DT`.`myMonth`
このクエリでは、値がゼロの月も含め、指定された範囲内のすべての月が表示されます。 「dateTable」から追加のフィールドを選択すると、四半期や曜日など、さまざまな期間ごとにデータを簡単にレポートできます。
以上がSQLでゼロ値を持つ月を含む日付範囲内のすべての月を表示するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。