2
Я использую Postgres и хотел бы создать агрегатную функцию для возврата последних n самых последних записей (согласно другому столбцу). Это возможно? Если да, то как я могу это сделать? Или было бы лучше не делать этого?Как создать агрегированную функцию для возврата последних n записей?
Ищете что-то вроде select sum(col1) as a, last_n(col2, 5, created_date) as b from ...
'
b
затем будет массив из 5 элементов.
Пожалуйста, добавьте свою версию Postgres. –
Использование Postgres 9.3 – Bradford
Звучит скорее как работа для оконной функции или подзапроса. Комбинированная функция PL/PgSQL для этого задания не будет слишком сложной, но она будет очень неэффективной, поскольку она будет создавать и уничтожать множество массивов, поскольку массивы неизменяемы на уровне SQL. Чтобы сделать его эффективным, вам нужно написать функцию на C, где вы можете мутировать массив состояний temp state, в этот момент вы обнаружите «радость» API-массива PostgreSQL C. –