Sqlalchemy在使用func.sum时保留对象

2024-07-08 11:19:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用func.sum(函数),同时仍然将对象作为输出,以便使用棉花糖进行序列化

query = (
session.query(Employee, func.sum(JobEntry.number_registered).label('hours_on_project'))
.join(JobEntry, Employee.employee_hashkey==JobEntry.employee_hashkey)
.filter(JobEntry.job_number.like('1011811%'))
.group_by(Employee)
.order_by(sa.desc('hours_on_project'))
).first()

查询返回:

(<Employee object>, 8327.0)

我希望它除了返回总和之外还返回JobEntry对象:

(<Employee object>, <JobEntry object>, 8327.0)

尝试在查询中添加JobEntry,但出现了一个操作错误

如何在仍然使用func.sum的情况下添加JobEntry对象作为输出


Tags: 对象函数projectnumberbyobjectonemployee
1条回答
网友
1楼 · 发布于 2024-07-08 11:19:47

JobEntry表与Employee表不是1:1。 如果它们的比例为1:1,则答案是将JobEntry添加到查询中,并按如下方式分组:

query = (
session.query(Employee, JobEntry, func.sum(JobEntry.number_registered).label('hours_on_project'))
.join(JobEntry, Employee.employee_hashkey==JobEntry.employee_hashkey)
.filter(JobEntry.job_number.like('1011811%'))
.group_by(Employee, JobEntry)
.order_by(sa.desc('hours_on_project'))

)

将JobEntry添加到1:M是可能的,但在我的情况下是错误的

相关问题 更多 >

    热门问题