gpt4 book ai didi

mysql - GROUP BY 从特定日期开始 X 天的时间间隔

转载 作者:行者123 更新时间:2023-11-29 22:04:14 25 4
gpt4 key购买 nike

我试图弄清楚是否可以从特定日期开始按 X 天的时间间隔对数据进行分组。我知道如何按天、周、月等进行分组,但我对任意时间间隔感到困惑。

例如...给定一个包含 timestampsession_count 列的 SQL 表,我想生成按时间间隔分组的聚合(在本例中为 30天)从特定日期(在本例中为今天)开始。

因此,如果今天是 2015-08-31,并且我想回顾过去 90 天,那么我期望得到三个结果,每个结果涵盖 30 天的时间段:

+-------------------+---------------+
| start_of_interval | session_count |
+-------------------+---------------+
| 2015-08-01 | 1234567 |
| 2015-07-02 | 2345678 |
| 2015-06-02 | 3456789 |
+-------------------+---------------+

理想情况下,我希望能够指定任意天数作为间隔,以及任意日期进行回溯。

编辑:

这是我期望需要使用的一般方法:

SELECT ROUND(CEILING(UNIX_TIMESTAMP(timestamp) / 2592000) * 2592000) AS thirtydays, 
SUM(session_count) AS session_count_sum
FROM my_table
GROUP BY thirtydays

但我不确定如何指定我们应该从查询的 thirtydays 部分开始工作的开始日期。

最佳答案

这将其聚合为 30 天的 block :

SELECT 

FLOOR(TIMESTAMPDIFF(
DAY, timestamp, '2015-08-31 00:00:00'
) / 30) AS thirtydays,

SUM(session_count)
FROM my_table
GROUP BY thirtydays;

这将返回它以及间隔的开始日期:

SELECT DATE_SUB('2015-08-31 00:00:00', INTERVAL
CEILING(
TIMESTAMPDIFF(DAY, timestamp, '2015-08-31 00:00:00') / 30
) * 30
DAY) AS thirtydays,

SUM(session_count)
FROM my_table
GROUP BY thirtydays;

关于mysql - GROUP BY 从特定日期开始 X 天的时间间隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32316844/

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