2016-01-08 1 views
0

Я пытаюсь использовать функцию windows, чтобы в конечном итоге вытащить только последний результат из каждого eternal_id, и я застрял, пытаясь заставить работать на Windows. Я вижу ошибку, подключаюсь ли я к движку и выбираю из него, или инициирую сеанс и запрос от него.Python flask-sqlalchemy - ошибка в функции запросов к окнам?

Вот что я пытался (метод «intiate сеанса и запрос от него»):

engine = create_engine('sqlite:///../../app.db') 
sessionfactory = sessionmaker(bind=engine) 
s = sessionfactory() 

myquery = s.query(models.case.id, 
        models.case.eternal_id, 
        func.count().over(
         partition_by=models.case.eternal_id).label('cnt')) 
print myquery.all() 

Вот ошибка, я получаю:

OperationalError: (sqlite3.OperationalError) near "(": syntax error [SQL:  
u'SELECT "case".id AS case_id, "case".eternal_id AS case_eternal_id, 
count(*) OVER (PARTITION BY "case".eternal_id) AS cnt \nFROM "case"'] 

Если удалить func.count().over(partition_by=models.case.eternal_id).label('cnt') из запроса все работает отлично. У кого-нибудь есть идея, почему я получаю сообщение об ошибке?

Вот модель, если она помогает:

from app import db 
class case(db.Model): 
    id = db.Column(db.Integer, primary_key=True) 
    eternal_id = db.Column(db.Integer, db.ForeignKey('case_eternal.id')) 
    eternal = db.relationship('case_eternal', back_populates='case_sids') 
    def __repr__(self): 
     return '<Case %r>' % (self.id) 

class case_eternal(db.Model): 
    id = db.Column(db.Integer, primary_key=True) 
    case_sids = db.relationship('case', back_populates='eternal') 

ответ

1

SQLite не имеет окна функции.

Смежные вопросы