create_aggregate(name, num_params, aggregate_class)
Creates a user-defined aggregate function.
The aggregate class must implement a step
method, which accepts the number of parameters num_params (if num_params is -1, the function may take any number of arguments), and a finalize
method which will return the final result of the aggregate.
The finalize
method can return any of the types supported by SQLite: bytes, str, int, float and None.
Example:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | 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]) |
Please login to continue.