Re: aggregate function for median calculation
От | Philip Hallstrom |
---|---|
Тема | Re: aggregate function for median calculation |
Дата | |
Msg-id | 20010618162930.E9218-100000@oddjob.adhesivemedia.com обсуждение исходный текст |
Ответ на | Re: aggregate function for median calculation (Alex Pilosov <alex@pilosoft.com>) |
Ответы |
Re: aggregate function for median calculation
|
Список | pgsql-general |
I missed the first part, but if the numbers are rows in a table, why not do something like: numrows = select count(*) from table1 where some_condition median_value = select some_col from table1 where some_condition order by some_col limit numrows/2, 1 (or something very close to that anyway). -philip On Mon, 18 Jun 2001, Alex Pilosov wrote: > On Mon, 18 Jun 2001, Thalis A. Kalfigopoulos wrote: > > > Hippl, > > I'm interested in calculating the median of a set of numbers. > > The algorithm requires that all values are known in advance (ie stored > > in an array). So the question is: how can I store everything first in > > an array so I can later process it given that I'd like this to be an > > aggregate function. I thought of creating an aggregate function and > > have the state_function() gather all the values of a group in an array > > and the final_function() to do the actuall median calculation on this > > array. But the intermmediate state cannot hold multiple values in an > > array (can it?) Any ideas on how to go with this? > > With current architecture, its kinda painful to implement such a function. > Your 'state' function should allocate (palloc) memory for each element > processed and then pfree it when you are done. > > -alex > > > > ---------------------------(end of broadcast)--------------------------- > TIP 6: Have you searched our list archives? > > http://www.postgresql.org/search.mpl >
В списке pgsql-general по дате отправления: