Irmante Astalavista

Simsalabim!!!
Blog ini bercerita tentang dunia IT, ilmu kebumian, dan lain-lain.

Sunday, January 25, 2009

Nilai Median pada Postgres

Nilai median sering kali digunakan dalam perhitungan statistik. Kalo dalam database PostgreSQL 8.3, fungsi penghitung nilai median ini perlu ditambahkan secara manual. Caranya adalah menambahkan SQL function syntax sebagai berikut:

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;

CREATE AGGREGATE median(anyelement) (
SFUNC=array_append,
STYPE=anyarray,
FINALFUNC=array_median
);

Cara panggilnya adalah sebagai berikut:

SELECT median(columnname) FROM tablename;

Kalo mo dibandingin sama nilai lain gunakan perintah:

SELECT median(columnname), avg(columnname), sum(columnname), max(columnname), min(columnname) FROM tablename;

Simple and very usefull ;;)
Source: dari sini

Labels:


0 Comments:

Post a Comment

<< Home