gpt4 book ai didi

mysql - 按 7 天增量对 MySQL 结果进行分组

转载 作者:太空宇宙 更新时间:2023-11-03 12:08:28 24 4
gpt4 key购买 nike

希望有人能帮我解决这个问题。

假设我有下面列出的表格。主机可以在同一日期出现多次,通常具有不同的备份大小。

+------------------+--------------+
| Field | Type |
+------------------+--------------+
| startdate | date |
| host | varchar(255) |
| backupsize | float(6,2) |
+------------------+--------------+

我如何找到 从最早日期 到最后日期的 7 天增量的备份大小总和?我不介意最后几天是否被切断,因为它们不属于 7 天增量。

期望的输出(首选):

+------------+----------+----------+----------+-----
|Week of | system01 | system02 | system03 | ...
+------------+----------+----------+----------+-----
| 2014/07/30 | 2343.23 | 232.34 | 989.34 |
+------------+----------+----------+----------+-----
| 2014/08/06 | 2334.7 | 874.13 | 234.90 |
+------------+----------+----------+----------+-----
| ... | ... | ... | ... |

+------------+------------+------------+------
|Host | 2014/07/30 | 2014/08/06 | ...
+------------+------------+------------+------
| system01 | 2343.23 | 2334.7 | ...
+------------+------------+------------+-------
| system02 | 232.34 | 874.13 | ...
+------------+------------+------------+-------
| system03 | 989.34 | 234.90 | ...
+------------+------------+------------+-------
| ... | ... | ... |

日期格式不是问题,只要它以某种方式被识别即可。此外,主机的顺序也不是问题。谢谢!

最佳答案

最简单的方法是获取最早的日期,只计算天数:

select x.minsd + interval floor(datediff(x.minsd, lb.startdate) / 7) day as `Week of`,
host,
sum(backupsize)
from listedbelow lb cross join
(select min(startdate) as minsd from listedbelow lb) x
group by floor(datediff(x.minsd, lb.startdate) / 7)
order by 1;

这会生成一个表单,每行都有 week ofhost。您可以根据需要调整结果。

关于mysql - 按 7 天增量对 MySQL 结果进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25355445/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com