import sqlalchemy as sa
query = sa.text('''
with t1 as (
select :aggregate_fn(value), item_id
from items
where item_id = :item_id and item_time > :fromm and item_time < :until
group by item_id
)
SELECT coalesce(array_to_json(array_agg(t1)), '[]')::text::bytea FROM t1
''').bindparams(fromm='2018-05-16', until='2018-05-17', item_id=2, aggregate_fn='min')
result = engine.execute(query).scalar()
item_records = result.tobytes().decode('utf8').replace("'", '"')
items = json.loads(item_records)
У меня есть таблица предметов, содержащая item_id, item_time и item_value. Вопрос в том, как я могу собрать значение во время выполнения из кода Python. Например, я использую item_id во время выполнения, используя параметры связывания. Но когда я пытаюсь сделать то же самое с агрегатными функциями, это выдает мне ошибку.
sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) синтаксис
ошибка в или около "("
Как связать функцию агрегата во время выполнения из кода Python.