首頁 >資料庫 >mysql教程 >如何顯示日期範圍內的所有月份,包括 SQL 中零值的月份?

如何顯示日期範圍內的所有月份,包括 SQL 中零值的月份?

Barbara Streisand
Barbara Streisand原創
2024-10-31 19:33:02736瀏覽

How to Show All Months in a Date Range, Including Those with Zero Values in SQL?

顯示日期範圍內的所有月份,包括零值的月份

在SQL 程式設計中,選擇給定日期範圍內的特定數據可以具有挑戰性,尤其是在處理缺失值時。當嘗試計算兩個日期之間所有月份的月平均值時,會出現此問題,並且不會顯示沒有值的月份。

解決方案

為了解決此問題,一個全面的解決方案建議使用「日期表」的方法。表格包含所需日期範圍內的所有月份。透過在日期表和實際資料表之間執行 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`

此查詢確保顯示指定範圍內的所有月份,包括值為零的月份。透過從「日期表」中選擇其他字段,您可以輕鬆地按不同時間段(例如季度或星期幾)報告資料。

以上是如何顯示日期範圍內的所有月份,包括 SQL 中零值的月份?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn