Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 Re : PL/pgSQL » Calcule d'une médiane sous postGreSql » 11/11/2019 23:44:22
Pour un calcul de médiane tout fait en postgresql moderne, on peut utiliser percentile_cont ou percentile_disc.
Voir https://forums.postgresql.fr/viewtopic.php?id=4218
tout simplement en fait.
un grand grand merci !!!
#2 Re : PL/pgSQL » Calcule d'une médiane sous postGreSql » 11/11/2019 23:02:43
Bonjour,
merci beaucoup.
C'est déjà beaucoup plus clair (et presque évident avec l'explication) sur le fonctionnement du code dont je disposais.
Je vais tester tout cela et je vous tiens au courant.
Stéphane
#3 PL/pgSQL » Calcule d'une médiane sous postGreSql » 10/11/2019 23:11:22
- slenoble
- Réponses : 4
Bonjour à tous,
je suis confronté à un problème qui me semblait simple à la base mais qui au final me bloque depuis quelques temps.
J'ai besoin de calculé une médiane sur un champs d'une table.
J'ai trouvé un code qui fait presque le travail (sur Postgre version au dela de 10) :
CREATE OR REPLACE FUNCTION _final_median(NUMERIC[])
RETURNS NUMERIC AS
$$
SELECT AVG(val)
FROM (
SELECT val
FROM unnest($1) val
ORDER BY 1
LIMIT 2 - MOD(array_upper($1, 1), 2)
OFFSET CEIL(array_upper($1, 1) / 2.0) - 1
) sub;
$$
LANGUAGE 'sql' IMMUTABLE;
CREATE AGGREGATE median(NUMERIC) (
SFUNC=array_append,
STYPE=NUMERIC[],
FINALFUNC=_final_median,
INITCOND='{}'
);
Je dis que ça fait presque le job car j'ai un pb de valeur manquante …. cette fonction, considère les valeurs "NULL" comme une modalité … je voudrais la même chose mais en ne tenant pas compte des valeurs NULL.
J'ai un niveau de base en SQL, et je n'ai jusque là jamais crée de fonction, du coup j'avoue ne pas tout comprendre au code ci-dessus.
Est ce que quelqu'un peut m'aider ?
Merci beaucoup par avance,
Stéphane
Pages : 1