LINUX.ORG.RU

sqlalchemy пользовательские функции

 , ,


0

1

доброго всем. как написать пользовательскую функцию для запроса session.query(mytable.unit, myfunc(mytable.value)).group_by(mytable.unit) чтобы она работала с массивом и выдавала значение по пределенному алгоритму (максимальное значение поля с отбросом значений не соответствующих закону нормального распределения) функцию на питоне напишу сам, для этого мне нужно получить список всех значений поля mytable.value сгруппированных для каждого mytable.unit. как я понимаю func.sum() в поставке sqlalchemy получает на вход массив и на выходе у нее просто сумма всех значений, как написать свою функцию подобную по использованию func.sum(), но с вышеозначенным функционалом? бьюсь над проблемой уже не один день, помогите пожалуйста.

как я понимаю func.sum() в поставке sqlalchemy получает на вход массив и на выходе у нее просто сумма всех значений

Неправильно понимаешь. func.sum транслируется в соответствующий SQL.

как написать свою функцию подобную по использованию func.sum(), но с вышеозначенным функционалом?

А по простому сделать не алё?

from itertools import groupby

def get_grouped(q):
    data = groupby(q, lambda r: r[0])
    for unit, values in data:
        yield unit, myfunc(values)

q = session.query(mytable.unit, mytable.value).order_by(mytable.unit)
for unit, val in get_grouped(q):
    print unit, val
anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.