Thread: How do I get min and max from an array of floating point values

How do I get min and max from an array of floating point values

From
pw
Date:
Hello,

Is it possible to get the min and max from an array of
floating point values?

The following doesn't return the min of the array values
it simply returns the complete array...(??)

SELECT min(string_to_array('1,2,3,4,5,6,7',',')::float[]);

Thanks

Peter


Re: How do I get min and max from an array of floating point values

From
"Pavel Stehule"
Date:
Hello

2008/9/2 pw <p.willis@telus.net>:
> Hello,
>
> Is it possible to get the min and max from an array of
> floating point values?
>
> The following doesn't return the min of the array values
> it simply returns the complete array...(??)
>
> SELECT min(string_to_array('1,2,3,4,5,6,7',',')::float[]);
>
> Thanks
>
> Peter
>

you should function
create function minimum(anyarray)
returns anyelement as $$
select min($1[i]) from generate_series(array_lower($1,1),
array_upper($1,1)) g(i);
$$ language sql immutable strict;

reagards
Pavel Stehule

> --
> Sent via pgsql-sql mailing list (pgsql-sql@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-sql
>


Re: How do I get min and max from an array of floating point values

From
"Yura Gal"
Date:
If you use intarray type it is convenient to call buil-in intarray
functions for your purpose.

http://www.postgresql.org/docs/8.3/static/intarray.html

SELECT t.a[1] AS "min", t.a[array_upper(t.a, 1)] AS "max"
FROM (SELECT sort(string_to_array('2,3,4,15,6,7',',')::int[]) AS a)t;

-- 
Best regards, Yuri.