sqlite3 - Python 中央値を得る集計関数を追加する
sqlite には ORACLE のように中央値を取得する集計関数 MEDIAN が無いようです。しかし以下のように自前の関数を追加することができます。
import sqlite3 class Median: def __init__(self): self.values = [] def step(self, value): self.values.append(value) def finalize(self): srtd = sorted(self.values) alen = len(srtd) return 0.5*(srtd[(alen-1)//2] + srtd[alen//2]) conn = sqlite3.connect("sqlite.db") conn.create_aggregate("median", 1, Median) cur = conn.cursor() cur.execute("select median(data1) from table1")