使用 peewee 实现上述需求,可以按照以下步骤操作:

  1. 定义数据库模型类,表示表 A 的结构和字段。
  2. 创建数据库连接。
  3. 执行 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 对应的数据库模型类,p1p2p3 分别对应表 A 的字段。fn.COUNTfn.SUMCaseWhen 等函数用于执行聚合查询和条件判断。group_by 函数用于按照 P1 字段分组。最后使用循环遍历查询结果并打印出来。

使用 Peewee 在 SQLite 表中根据字段分组统计数据

原文地址: https://www.cveoy.top/t/topic/pTbd 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录