Я использую Greenplum DB, и я хотел бы вычислить медиану в окне, что-то вроде:Пользовательского Greenplum агрегатная функции с окном
SELECT avg(var1) OVER (PARTITION BY var2 ORDER BY datetime
ROWS BETWEEN 10 PRECEDING AND CURRENT ROW) FROM tbl...
К сожалению медианы не реализованный в Postgres, так что я создал свой собственный агрегат используя этот пример: https://wiki.postgresql.org/wiki/Aggregate_Median
Проблема в том, что это работает, когда я использую весь столбец, но не в окне (с предложением OVER), возвращающем ошибку, которая должна быть определена как префикс. Документация Greenplum подтверждает, что: http://gpdb.docs.pivotal.io/4380/ref_guide/sql_commands/CREATE_AGGREGATE.html
Документация и роль префикса для меня не очень понятна. Есть ли у вас пример определения настраиваемой функции агрегации Postgres, поддерживающей окна?
Он работает, спасибо за объяснение 'PREFUNC' – Lukasz
Отлично, рад, что это было полезно @Lukasz. Если вы почувствуете, что ответ достойный, я бы очень признателен за его поддержку и [отмечаю его как принятый] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work). –