【问题标题】:convert sqlalchemy query written for sqlite to postgres将为 sqlite 编写的 sqlalchemy 查询转换为 postgres
【发布时间】:2022-01-10 06:07:39
【问题描述】:

使用 sqlite 制作的 Flask 应用程序现在转换为 postgres。我有以下查询来收集多家商店的每日销售额。然后将销售额放入一个列表中以在 chartjs 图表中使用。

    daily_chart = (
        db.session.query(Sales, func.sum(Sales.sales).label("total_sales"))
        .filter(Sales.date >= start_week, Sales.date <= end_week)
        .group_by(Sales.date)
        .order_by(Sales.date)
    )
    values1 = []
    for v in daily_chart:
        values1.append(v.total_sales)

我收到以下错误。

(psycopg2.errors.GroupingError) column "Sales.id" must appear in the GROUP BY clause or be used in an aggregate function

我尝试使用 with_entities 但并不真正了解 sql,也找不到适用于 func 语句的答案。

【问题讨论】:

    标签: postgresql sqlalchemy flask-sqlalchemy


    【解决方案1】:

    尝试从query 语句中删除Sales

    【讨论】:

    • 我刚刚在查询中将 Sales 更改为 Sales.date 并且它起作用了。
    • 是的。我认为在那里有销售是试图带来如果你不按 id 分组的话你不能带来的 id。
    • 在 SQL 中,您可以看到这种行为,请参阅这个 DBFIDDLE:dbfiddle.uk/…
    猜你喜欢
    • 1970-01-01
    • 2015-08-06
    • 2017-04-25
    • 1970-01-01
    • 2016-10-23
    • 1970-01-01
    • 1970-01-01
    • 2019-03-20
    • 1970-01-01
    相关资源
    最近更新 更多