使用 Peewee 在 SQLite 表中根据字段分组统计数据
使用 peewee 实现上述需求,可以按照以下步骤操作:
- 定义数据库模型类,表示表 A 的结构和字段。
- 创建数据库连接。
- 执行 SQL 查询,根据 P1 字段分组,统计不同 P1 的数据条数,P2 值为 0 的个数,P2 值为 1 的个数。
以下是示例代码:
from peewee import *
# 定义数据库模型类
database = SqliteDatabase('mydatabase.db')
class TableA(Model):
p1 = IntegerField()
p2 = IntegerField()
p3 = CharField()
class Meta:
database = database
table_name = 'A'
# 创建数据库连接
database.connect()
# 执行 SQL 查询
result = TableA.select(TableA.p1, fn.COUNT(TableA.p1).alias('count_p1'), fn.SUM(Case(
When(TableA.p2 == 0, then=1),
default=0
)).alias('count_p2_0'), fn.SUM(Case(
When(TableA.p2 == 1, then=1),
default=0
)).alias('count_p2_1')).group_by(TableA.p1)
# 打印查询结果
for row in result:
print(f'P1: {row.p1}, Count P1: {row.count_p1}, Count P2=0: {row.count_p2_0}, Count P2=1: {row.count_p2_1}')
以上代码中,TableA 为表 A 对应的数据库模型类,p1、p2、p3 分别对应表 A 的字段。fn.COUNT、fn.SUM、Case、When 等函数用于执行聚合查询和条件判断。group_by 函数用于按照 P1 字段分组。最后使用循环遍历查询结果并打印出来。
原文地址: https://www.cveoy.top/t/topic/pTbd 著作权归作者所有。请勿转载和采集!