![]() |
1
6
我同意Lieven的回答,创建一个包含您可能需要的所有月份的表,并使用它“左联接”到您的结果表。记住,这是一个非常小的表,每年只有365行数据。。。您可以很容易地编写一些代码来填充这个表
然后将其与上面的查询结合起来,如下所示; 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 `dateTable`.`myDate` = `myTable`.`save_date` WHERE `dateTable`.`myDate` BETWEEN '2009-01-01' AND '2009-07-01' GROUP BY `DT`.`myYear`, `DT`.`myMonth`
使用它,您可以将“groupby”子句更改为“dateTable”表中的任何内容,这样可以方便地按财务季度、月份、日期、星期几等进行报告。
|
![]() |
2
2
最简单的方法可能是创建一个包含月份和年份的日期表,并将其与最终结果合并。 |
![]() |
John Smith · Java按值对映射进行分组,其中值为列表 2 年前 |
![]() |
The Great · 拆分并存储数据帧,但名称基于特定列中的唯一值 2 年前 |
![]() |
Flo · 分组依据中的SQL大小写 2 年前 |
![]() |
user13663655 · 我可以使用条件分组并返回源类型值吗 3 年前 |
![]() |
pinkiBet · 使用MAX和UNION分组,还是加入? 3 年前 |
![]() |
lugger1 · 如何获取Postgres中时间间隔的平均值 7 年前 |