ORA-00979将group_by与sqlalchemy一起使用时

时间:2020-06-25 13:44:29

标签: sqlalchemy flask-sqlalchemy cx-oracle

我有一个查询,该查询基于创建月份对总任务进行计数,但是sqlalchemy给我带来以下错误:

sqlalchemy.exc.DatabaseError:(cx_Oracle.DatabaseError)ORA-00979

这是我的sqlalchemy查询:

tasks_by_month = (
        db.session.query(
            func.to_char(Task.creation_time, "MM").label("month"),
            func.count(Task.id).label("count"),
        )
        .group_by(func.to_char(Task.creation_time, "MM"))
        .order_by(text("month asc"))
        .all()
    )

这是sqldeveloper中的查询:

SELECT
    TO_CHAR(TA.CREATION_TIME, 'MM') AS MONTH,
    COUNT(TA.ID)
FROM
    TASKS TA
GROUP BY
    TO_CHAR(TA.CREATION_TIME, 'MM')
ORDER BY
    MONTH

我期望得到以下结果

enter image description here

感谢帮助

1 个答案:

答案 0 :(得分:1)

我设法通过将 func.to_char(Task.creation_time,“ MM”)。Label(“ month”)更改为 extract('month',Task.creation_time)来解决此问题).label(“ month”)

tasks_by_month = (
        db.session.query(
            extract('month', Task.creation_time).label("month"),
            func.count(Task.id).label("count"),
        )
        .group_by(extract('month', Task.creation_time))
        .order_by(text("month asc"))
        .all()
    )

谢谢:)