database - 来自时间序列中排序列的 sqlalchemy 查询
问题描述
我有一个 sqlite 表定义为:
class HourlyUserWebsite(Base):
__tablename__ = 'hourly_user_website'
id = Column(Integer, primary_key=True)
user = Column(String(600), index=True)
domain = Column(String(600))
time_secs = Column(Integer, index=True)
def __repr__(self):
return "HourlyUserWebsite(user='%s', domain='%s', time_secs=%d)" % \
(self.user, self.domain, self.time_secs)
我使用类方法向其中添加元素:
def add_elements_to_hourly_db(self, data, start_secs, end_secs, engine):
session = self._get_session(engine)
for el in data:
session.add(el)
session.commit()
return
由于数据是时间序列,我希望始终添加具有增加或等于 time_secs 值(不减少)的元素。
我通过如下查询从表中获取数据:
session.query(HorlyUserWebsite)
我希望查询的结果按time_secs
和排序user
。
有什么办法可以做到吗?数据是否可以以优化排序数据查询的方式存储,同时记住它是一个时间序列?
解决方案
session.query(HourlyUserWebsite).order_by(HourlyUserWebsite.user,HourlyUserWebsite.time_secs.desc()).all()
推荐阅读
- ios - 通知服务扩展是否需要任何功能?
- javascript - 如何获取触发了 jstree 上下文菜单的节点?
- c# - 尝试使用 Canvas Bitmap 将 C# 中的图片保存到字节数组,但它只输出 2^16 个字节
- python - 其他文件中的函数
- redis - Redis Exporter:Redis 上 Prometheus 的加密端口是什么?
- python - 将字符串项附加到 Pandas 列中的列表
- winforms - 如何在 Devexpress 的 ComboBoxEdit 中选择项目
- pyspark - 如何将数据框的所有列设置为空值
- git - RStudio 中的 Git SSH 使用 GUI 按钮工作,但不使用 shell
- linux - 在 Linux 5.7 中实现系统调用时出错