當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。