如何在SqlAlchemy中查询步长间隔为分钟/小时的行



我正在使用sqlalchemy查询MySql数据库的内存日志。我正在使用:

session.query(Memory).filter(Memmory.timestamp.between(from_date, to_date))

,但使用时间窗后的结果仍然太多。

现在我想查询时间窗口内的结果,但通过要求每X分钟/小时记录一次的条目并跳过其间的条目来过滤,但无法找到简单的方法来实现。

为了更详细地说明,假设"l"是给定时间窗口内查询的所有结果:

lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll

为了稀释它们,我正在寻找一个查询,每隔X分钟/小时只返回'l',这样我就不会不知所措:

l......l......l.....l......l......l......l.....l.....l.....l.

我可以获取所有内容,然后编写一个函数来完成这些工作,但这首先违背了避免结果阻塞的目的。

旁注:更糟糕的是,我可以在跳过预定义的行数后请求一行,在行id列上使用mod。但是最好避免这种情况,因为有一个时间戳(sqlalchemy的DateTime类型)。

编辑:在时间戳上使用group by可能会有一些值,然后以某种方式从每个组中选择一行,但仍然不确定如何使用sqlalchemy以有用的方式做到这一点。

如果我理解正确的话,from_date和to_date只是日期。如果您将它们设置为python datetime对象,其中包含您想要的结果之间的日期/时间,则应该可以工作。

相关内容

  • 没有找到相关文章

最新更新