当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python sqlite3.Connection.create_aggregate用法及代码示例


用法:

create_aggregate(name, num_params, aggregate_class)

创建用户定义的聚合函数。

聚合类必须实现 step 方法,该方法接受参数数量 num_params(如果 num_params 为 -1,该函数可以采用任意数量的参数),以及将返回最终结果的 finalize 方法聚合的结果。

finalize 方法可以返回 SQLite 支持的任何类型:bytes、str、int、float 和 None

例子:

import sqlite3

class MySum:
    def __init__(self):
        self.count = 0

    def step(self, value):
        self.count += value

    def finalize(self):
        return self.count

con = sqlite3.connect(":memory:")
con.create_aggregate("mysum", 1, MySum)
cur = con.cursor()
cur.execute("create table test(i)")
cur.execute("insert into test(i) values (1)")
cur.execute("insert into test(i) values (2)")
cur.execute("select mysum(i) from test")
print(cur.fetchone()[0])

con.close()

相关用法


注:本文由纯净天空筛选整理自python.org大神的英文原创作品 sqlite3.Connection.create_aggregate。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。