首页  >  文章  >  数据库  >  如何显示日期范围内的所有月份,包括 SQL 中零值的月份?

如何显示日期范围内的所有月份,包括 SQL 中零值的月份?

Barbara Streisand
Barbara Streisand原创
2024-10-31 19:33:02674浏览

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