Peewee 计数和聚合


我们可以通过附加找到任何 SELECT 查询中报告的记录数 count() 方法。例如,以下语句返回联系人表中 City='Nasik' 的行数。

qry=Contacts.select().where (Contacts.City=='Nasik').count()
print (qry)

例子


SQL has GROUP BY SELECT 查询中的子句。 Peewee 以以下形式支持它 通过...分组() 方法。以下代码返回联系人表中的城市名称计数。

from peewee import *

db = SqliteDatabase('mydatabase.db')
class Contacts(BaseModel):
    RollNo = IntegerField()
    Name = TextField()
    City = TextField()
    class Meta:
        database = db

db.create_tables([Contacts])

qry=Contacts.select(Contacts.City, fn.Count(Contacts.City).alias('count')).group_by(Contacts.City)
print (qry.sql())
for q in qry:
    print (q.City, q.count)

Peewee 发出的 SELECT 查询如下:

('SELECT "t1"."City", Count("t1"."City") AS "count" FROM "contacts" AS "t1" GROUP BY "t1"."City"', [])

输出


根据 Contacts 表中的样本数据,显示以下输出:

Chennai 1
Delhi   2
Indore  1
Mumbai  1
Nagpur  1
Nasik   3
Pune    1