#1 Tue 18 February 2020 22:39
- preliator
- Participant assidu
- Date d'inscription: 17 Nov 2018
- Messages: 433
Mediane sur Postgre
Bonjour à tous.
Sachant utiliser les différentes méthodes d'agrégats de Postgre, calculer la médiane reste toujours un mystère pour moi.
Admettons la table suivante :
Code:
create temporary table test as select * from (values ('42-60', 12, 'male'), ('42-60', 5, 'female'), ('42-61', 3.59, 'male'), ('42-61', 13.85, 'male'), ('42-62', 2.96, 'female')) as t(path, cost, sex);
Comment puis-je trouver la médiane du champ "cost" des éléments male et female ?
Merci à vous.
Hors ligne
#2 Wed 19 February 2020 02:25
Re: Mediane sur Postgre
Bonsoir,
Il faut utiliser la fonction percentile_disc(0.5) (qui équivaut à prendre 50 centiles, ce qui est la définition de la médiane)
Code:
WITH demo AS ( select * from (values ('42-60', 12, 'male'), ('42-60', 5, 'female'), ('42-61', 3.59, 'male'), ('42-61', 13.85, 'male'), ('42-62', 2.96, 'female')) as t(path, cost, sex) ) SELECT percentile_disc(0.5) WITHIN GROUP (ORDER BY cost) FROM demo;
Cordialement
Thomas
Hors ligne
#3 Wed 19 February 2020 09:09
- ppluvinet
- Participant assidu
- Lieu: VALENCE
- Date d'inscription: 6 Aug 2007
- Messages: 617
Re: Mediane sur Postgre
Et bien j'ai appris quelque chose ! J'étais encore dans l'idée de faire une fonction PL/R.
Pascal PLUVINET
Hors ligne