Re: Median/Quantile Aggregate

Поиск
Список
Период
Сортировка
От David Orme
Тема Re: Median/Quantile Aggregate
Дата
Msg-id 717A5003-3A45-4314-AEDE-0306B5C24806@ic.ac.uk
обсуждение исходный текст
Ответ на Re: Median/Quantile Aggregate  (Adam Witney <awitney@sgul.ac.uk>)
Список pgsql-novice
Hi Sean and Adam,

I certainly have considered PL/R but I was initially hoping for
something that meant I didn't have to recompile R with the shared
library enabled on my Mac!  From the looks of Adam's messages on the
PL/R helplist, that doesn't look like too much of a struggle.

Since R is already my first choice for statistical analysis (and
indeed, the external software I was using for medians in the first
place!) this seems like a good way forward.

Tom - thanks for the plpgsql suggestion. I'll try and get that
working too, for the practise!

Thanks to all,
David

On 17 May 2005, at 17:34, Adam Witney wrote:

>
> Using PL/R, two examples... One for median and inter-quartile range
>
> CREATE OR REPLACE FUNCTION r_median(_float8) RETURNS float AS '
>   median(arg1)
> ' LANGUAGE 'plr';
>
> CREATE AGGREGATE median (
>   sfunc = plr_array_accum,
>   basetype = float8,
>   stype = _float8,
>   finalfunc = r_median
> );
>
>
> CREATE OR REPLACE FUNCTION r_iqr(_float8) RETURNS float AS '
>   IQR(arg1)
> ' LANGUAGE 'plr';
>
> CREATE AGGREGATE iqr (
>   sfunc = plr_array_accum,
>   basetype = float8,
>   stype = _float8,
>   finalfunc = r_iqr
> );
>
>
>
>
>> Hi,
>>
>> I know people have asked about this before but I can't find a working
>> solution on the web - I've found code for specific instances of
>> calculating medians but I need a general aggregate function for
>> calculating medians, or more generally any given quantile.
>>
>> The kind of thing I need to do is to be able to extract the median
>> value from a table of 4 million rows, aggregating across more than
>> 50,000 grouping values - the sort of thing that is really easy to do
>> for averaging:
>>
>> SELECT grid_id, avg(rs) FROM behr_grid GROUP BY grid_id;
>>
>> From what I've seen on the web, I know this isn't trivial or
>> necessarily fast but at the moment I'm reading the data out into
>> something that calculates medians and then matching it back in and
>> this doesn't feel particularly elegant!
>>
>> Any suggestions gratefully received...
>>
>> Thanks,
>> David
>>
>>
>>
>> ---------------------------------------
>> Dr. David Orme
>>
>> Department of Biological Sciences
>> Imperial College London
>> Silwood Park Campus
>> Ascot, Berkshire SL5 7PY UK.
>>
>> Tel: +44 (0)20 759 42358
>> Fax: +44 (0)20 759 42339
>> e-mail: d.orme@imperial.ac.uk
>>
>>
>>
>> ---------------------------(end of
>> broadcast)---------------------------
>> TIP 3: if posting/reading through Usenet, please send an appropriate
>>     subscribe-nomail command to majordomo@postgresql.org so that your
>>     message can get through to the mailing list cleanly
>>
>
>
> --
> This message has been scanned for viruses and
> dangerous content by MailScanner, and is
> believed to be clean.
>
>


В списке pgsql-novice по дате отправления:

Предыдущее
От: "Magnus Hagander"
Дата:
Сообщение: Re: problems with postgresql.msi (installing 8.0.2)
Следующее
От:
Дата:
Сообщение: Re: problems with postgresql.msi (installing 8.0.2)