繁体   English   中英

SQL查询转换为SQLAlchemy

[英]SQL Query translation to SQLAlchemy

您好,我正在尝试将以下相对简单的查询转换为SQLAlchemy,但我得到了

('Unexpected error:', <class 'sqlalchemy.exc.InvalidRequestError'>)

SELECT model, COUNT(model) AS count FROM log.logs 
WHERE SOURCE = "WEB" AND year(timestamp) = 2015 AND month(timestamp) = 1 
and account = "Test" and brand = "Nokia" GROUP BY model ORDER BY count DESC limit 10

这是我写的,但是没有用。 怎么了 ?

  devices = db.session.query(Logs.model).filter_by(source=source).filter_by(account=acc).filter_by(brand=brand).\
            filter_by(year=year).filter_by(month=month).group_by(Logs.model).order_by(Logs.model.count().desc()).all()

从您的代码示例中很难分辨出来,但是希望以下是正确的SQLAlchemy代码。 尝试:

from sqlalchemy.sql import func

devices = (db.session
           .query(Logs.model, func.count(Logs.model).label('count'))
           .filter(source=source)
           .filter_by(account=acc)
           .filter_by(brand=brand)
           .filter_by(year=year)
           .filter_by(month=month)
           .group_by(Logs.model)
           .order_by(func.count(Logs.model).desc()).all())

请注意,我已将查询括在(...)以避免必须在每行末尾使用\\

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM