sqlite 中有一张表A 表A有字段 P1 P2 P3 P2 有值 0 1 2 要求根据P1字段分组统计不同P1的数据条数 P2 值 为0的个数 P2 的值 为1的个数请使用peewee实现。并给出示例代码
使用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/iap8 著作权归作者所有。请勿转载和采集!