这很难用一个问题来解释,但是这里是。
在 MySQL 数据库中,我有一个名为 video 的表,其中包含创建的所有视频。 结构是这样的
id
owner
title
created_at
我有另一个表用户,类似这样
id
name
created_at
x轴是月份# y 轴是每月的视频数量
如您所见,它显示了每个用户每月创建的视频数量。但第一个月始终是从用户创建之日起 30 天。因此,对于用户 Ben 来说,它将是从 2016-10-01 到 2016-11-01,但对于 Rick 来说,则是从 2016-08-01 到 2016-09-01
因此,Ben 的第一个月与 Rick 的第一个月相差大约 60 天。
但在图表中我想将它们全部显示为第 1 个月
我现在的解决方案是“标准化”数据。因此,为了获取 Ben 的数据,我计算了固定日期(我将其设置为 2016-01-01)之间的差异并计算了天数差异。
然后我减去所有视频的天数,这样第一个月的所有视频将是 2016-01-01 到 2016-02-01
这可行,但我真的不确定这是否是最好的方法。
有人对如何执行此操作有更好的想法吗?
谢谢
最佳答案
有人告诉我有更好的方法。 我们没有像我那样标准化日期,而是创建一个新属性
我更新了 create_video
事件,使其具有 age_of_user
之类的属性。然后我可以通过age_of_user
分组来查看他们在任意月份上传的视频数量。
类似的东西
{
age_of_user: {
days: 64,
weeks: 9
months: 2,
}
}
每个事件都是使用这个新属性创建的。 当我查询时,我按月份和用户分组并获取我需要的所有数据
这样我就不需要弄乱视频的时间戳,并且可以在不同的查询中使用它。
关于mysql - 如何获取显示某个时间间隔内每个用户的事件的表格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40287270/