gpt4 book ai didi

sqlalchemy group_by 和计数

转载 作者:行者123 更新时间:2023-12-03 13:20:24 24 4
gpt4 key购买 nike

我将 flask 用作带有 sqlalchemy 的 python 框架。这些模型使用 query_property 帮助我构建查询:

class Person(object):
query = db_session.query_property()
....

persons = Person.query.all()

每个人都有他居住的城市、州和国家,我想收集所有结果并输出如下内容:

    Country     State       City        Persons(count)
================================================================================
US NY New York 10
DE Berlin Berlin 100

这显然需要按国家、州、城市选择计数和分组。分组有效,但我不知道如何实现计数,因为查询属性没有选择方法,在这种情况下我会写:

Person.query.select([Person.country, Person.state, Person.city, func.count(Person.id)]).all()

任何知道如何使用 query_property 的人用 group_by 和计数?

最佳答案

您可以使用 add_columns Person.query 上附加计算值的方法:

Person.query.add_columns(func.count(...)).group_by(...).all()

请记住,您得到的是一个元组列表(不是 Person 对象)。但是,每个元组都包含 Person 对象和计算值:

[(<Person object>, 3), (<Person object>, 7), ...]

关于sqlalchemy group_by 和计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8274069/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com