ホームページ >データベース >mysql チュートリアル >SQLでゼロ値を持つ月を含む日付範囲内のすべての月を表示するにはどうすればよいですか?

SQLでゼロ値を持つ月を含む日付範囲内のすべての月を表示するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-31 19:33:02738ブラウズ

How to Show All Months in a Date Range, Including Those with Zero Values in 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。