简体   繁体   English

在 Python 中使用 Peewee 创建 AVG 查询

[英]Creating AVG query with Peewee in Python

Im using Peewee ORM.我正在使用 Peewee ORM。 I have only one table (Person) with fields like first_name , username , age , gender etc. I want to write a query where I get average of age, just like normal SQL query:我只有一个表(Person),其中包含first_nameusernameagegender等字段。我想编写一个查询来获取平均年龄,就像普通的 SQL 查询一样:

SELECT AVG(age) FROM Person

But I have problem with creating this query in Peewee.但我在 Peewee 中创建此查询时遇到问题。 I have:我有:

query = Person.select(fn.AVG(Person.age))

When I print this query I get: SELECT AVG("t1"."age") FROM "person" as "t1" and when I iterate over query and and print I get None .当我打印此查询时,我得到: SELECT AVG("t1"."age") FROM "person" as "t1"当我遍历查询并打印时,我得到None Does anybody know how to solve this problem?有谁知道如何解决这个问题?

To get a scalar value, from an aggregate, you can use the scalar() method:要从聚合中获取标量值,您可以使用 scalar() 方法:

Person.select(fn.AVG(Person.age)).scalar()

http://docs.peewee-orm.com/en/latest/peewee/querying.html#aggregating-records http://docs.peewee-orm.com/en/latest/peewee/querying.html#aggregating-records

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

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