الدالة sqlite3.create_aggregate()
في بايثون
< Python | Connection
ينشئ التابع دالة تجميع aggregate function معرّفة من قبل المستخدم.
البنية العامة
create_aggregate(name, num_params, aggregate_class)
== المعاملات ==
name
اسم دالة التجميع المراد إنشاؤها.
num_params
عدد المعاملات التي تستقبلها الدالة (يمكن تعيين القيمة -1 لهذا المعامل لتستقبل الدالة أي عدد من المعاملات).
aggregate_class
صنف تجميع يجب أن يتضمّن تابع step، والذي يأخذ المعامل num_params والذي يحدّد عدد المعاملات في الدالة التي ينشئها التابع (يمكن تعيين القيمة -1 لهذا المعامل لتستقبل الدالة أي عدد من المعاملات)، وتابع 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])
انظر أيضًا
- التابع
Connection.create_function()
:ينشئ التابع دالة معرفة من قبل المستخدم يمكن استعمالها لاحقًا ضمن جمل SQL. - التابع
Connection.create_collation()
:ينشئ التابع ترتيبًا collation يحمل الاسم المعطى مع الكائن القابل للاستدعاء المعطى.
مصادر
صفحة DB-API 2.0 interface for SQLite databases في توثيق بايثون الرسمي.