gpt4 book ai didi

mysql - 在日期期间每周插入行

转载 作者:行者123 更新时间:2023-11-29 10:20:26 25 4
gpt4 key购买 nike

我有一个非常大的表:user_id、started_at、ends_at、group_id

我需要对此进行一些分析,因此我尝试预先计算一些值,在这种特定情况下,我希望创建一个如下表:active_in_week 包含 id, user_id, active_week,其中 active_week 是 started_atends_at 之间的每周

因此,对于 started_at 2017-01-01 和 ends_at 2017-01-31 的行,结果将是 4 行:

id user_id, active_week
1, 1, 1
2, 1, 2
3, 1, 3
4, 1, 4

由于该表的大小/速度,我更愿意在查询级别而不是在编程语言上执行此操作。目的是在每周汇总值之后进行其他查询。

现在,如果我在规范化状态下执行这些查询,它们会使用适当的索引运行长达 8 小时。

最佳答案

你也许可以像这样使用away(注意:这有点棘手):

CREATE TABLE weeks AS (
SELECT weekId, MIN(date) as starts_at, MAX(date) as ends_at
FROM (
SELECT
YEARWEEK(started_at) AS weekId,
started_at AS date,
FROM srctable
UNION
SELECT
YEARWEEK(ends_at) AS weekId,
ends_at AS date,
FROM srctable

)
GROUP BY weekId
)

那么您应该有一个表格,其中包含数据的所有星期、开始日期和结束日期。

您可以在周表上进行联接。

关于mysql - 在日期期间每周插入行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49359703/

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