顯示日期範圍內的所有月份,包括零值的月份
在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中文網其他相關文章!