Таблица возврата функции PostgreSQL с использованием plpython - PullRequest
0 голосов
/ 19 июня 2019

Я хочу вернуть стол.Функция получает массив (запрос 'select имя_функции (array_agg (имя_ столбца)) из table_name')

Я кодировал ниже:

create type pddesctype as(
    count float,
    mean float,
    std float,
    min float
);

create function pddesc(x numeric[])
returns pddesctype
as $$
    import pandas as pd
    data=pd.Series(x)

    count=data.describe()[0]
    mean=data.describe()[1]
    std=data.describe()[2]
    min=data.describe()[3]

    return count, mean, std, min

$$ language plpython3u;

Этот код приводит к массиву только в одном столбце.(плавать, плавать, плавать ...)

Я пытался

create function pddesc(x numeric[])
returns table(count float, mena float, std float, min float)
as $$
    import pandas as pd
    data=pd.Series(x)

    count=data.describe()[0]
    mean=data.describe()[1]
    std=data.describe()[2]
    min=data.describe()[3]

    return count, mean, std, min

$$ language plpython3u;

Но есть ошибка.(На карте нет ключа 'count'. СОВЕТ: чтобы вернуть нулевое значение в столбце, добавьте значение None в отображение с ключом, названным в честь столбца.)

Я хочу показать все результаты накаждый столбец (как таблица) без создания типа.как изменить синтаксис RETURNS?

...