我有一个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
排序。
我有什么方法可以做到吗?数据是否可以以这样的方式存储,即对已排序数据的查询进行优化,同时记住它是一个时间序列?
答案 0 :(得分:0)
session.query(HourlyUserWebsite).order_by(HourlyUserWebsite.user,HourlyUserWebsite.time_secs.desc()).all()