Peewee – 计数和聚合
我们可以通过附加 count() 方法找到任何SELECT查询中报告的记录数。例如,下面的语句返回Contacts表中City=’Nasik’的行数。
qry=Contacts.select().where (Contacts.City=='Nasik').count()
print (qry)
例子
SQL在SELECT查询中有 GROUP BY 子句。Peewee以 group_by() 方法的形式支持它。下面的代码返回联系人表中的城市名称数量。
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"', [])
输出
根据联系人表中的样本数据,显示了以下输出结果
Chennai 1
Delhi 2
Indore 1
Mumbai 1
Nagpur 1
Nasik 3
Pune 1