sqlalchemy查询按时间序列排序的列

时间:2018-05-28 11:00:04

标签: database sqlite 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_secsuser排序。

我有什么方法可以做到吗?数据是否可以以这样的方式存储,即对已排序数据的查询进行优化,同时记住它是一个时间序列?

1 个答案:

答案 0 :(得分:0)

session.query(HourlyUserWebsite).order_by(HourlyUserWebsite.user,HourlyUserWebsite.time_secs.desc()).all()