On Mon, Jul 20, 2009 at 11:14:22PM -0400, Tom Lane wrote:
- David Kerr <d...@mr-paradox.net> writes:
- > But, i don't see any coded loop or way for me to insert a signal check. 
(I'm not much of a 
- > programmer) the function was just:
- 
- > CREATE OR REPLACE FUNCTION array_median(anyarray)
- > RETURNS anyelement AS
- > $$
- > SELECT CASE                                             
- > WHEN array_upper($1,1) = 0 THEN null                    
- > WHEN mod(array_upper($1,1),2) = 1 THEN
- > asorted[ceiling(array_upper(asorted,1)/2.0)]
- > ELSE
- > ((asorted[ceiling(array_upper(asorted,1)/2.0)] + 
asorted[ceiling(array_upper(asorted,1)/2.0)+1])/2.0) END
- > FROM (SELECT ARRAY(SELECT ($1)[n] FROM                  
- > generate_series(1, array_upper($1, 1)) AS n             
- > WHERE ($1)[n] IS NOT NULL                               
- > ORDER BY ($1)[n]                                        
- > ) As asorted) As foo ;  
- > $$
- > LANGUAGE 'sql' IMMUTABLE; 
- 
- Huh.  How big an array were you trying to invoke it on?
- 
-                       regards, tom lane
- 

there are 899991 records in the table it's just

test=# \d test2
       Table "public.test2"
 Column |     Type     | Modifiers
--------+--------------+-----------
 t1     | numeric(9,4) |


Thanks

Dave

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

Reply via email to