Re: Агрегация массивов
От | Mihail Nasedkin |
---|---|
Тема | Re: Агрегация массивов |
Дата | |
Msg-id | AANLkTika2Mnijz01CXnY7aNguvtxECrPBrK_P+N4qv7=@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Агрегация массивов (Mihail Nasedkin <m.nasedkin@gmail.com>) |
Ответы |
Re: Агрегация массивов
|
Список | pgsql-ru-general |
А ошибка в имени функции: CREATE AGGREGATE agregate_array2array ( sfunc = "сцепить2массива", basetype = anyarray, stype = anyarray, initcond = '{}' ); 12.12.10, Mihail Nasedkin<m.nasedkin@gmail.com> написал(а): > Вот к чему стремился, нарыл в интернете из разных примеров: > > CREATE OR REPLACE FUNCTION "сцепить2массива"(anyarray, anyarray) > RETURNS anyarray AS > ' BEGIN RETURN $1 || $2; END;' > LANGUAGE 'plpgsql'; > > CREATE AGGREGATE agregate_array2array ( > sfunc = array_concat, > basetype = anyarray, > stype = anyarray, > initcond = '{}' > ); > > select id, > agregate_array2array(arr) > > from ( > values > (0, array[0]), > (1, array[1,2]), > (1, array[3,4,5]) > ) v (id, arr) > > group by id > ; > > Вообще понимания агрегации у меня нету. > > 12.12.10, Mihail Nasedkin<m.nasedkin@gmail.com> написал(а): >> Как обычно, доброго всем. >> >> Встала задача агрегировать не одиночные значения, а массивы в один >> результирующий массив. >> Пока смог реализовать такой, неуклюжий вариант: >> >> select id, >> >> string_to_array( >> array_to_string( >> array_concat( >> array_to_string(arr, ',') >> ) >> , ',') >> , ',')::int[] >> >> from ( >> values >> (0, array[0]), >> (1, array[1,2]), >> (1, array[3,4,5]) >> ) v (id, arr) >> >> group by id >> ; >> >> Результат: >> 1;"{1,2,3,4,5}" >> 0;"{0}" >> >> Результат тот, который требуется, но можно ли сделать агрегацию >> массивов в одной функции? >> >> -- >> --- >> С уважением, >> Михаил Наседкин >> > > > > -- > --- > С уважением, > Михаил Наседкин > -- --- С уважением, Михаил Наседкин
В списке pgsql-ru-general по дате отправления: