Как вернуть медиану и значения для x стандартных отклонений от нее в postgres - PullRequest
0 голосов
/ 15 мая 2018

У меня есть таблица данных, содержащая числовые значения и категории. Я хотел бы вернуть новую таблицу, которая дает медиану по категориям и значения 1 или 2 стандартных отклонения под ней, чтобы провести некоторый дальнейший анализ. Я могу получить медиану, используя функцию вики, но, как показано ниже, но борясь со стандартным отклонением.

SELECT max(d_voa_record1.unadjustedprice) AS max_sqm_rate
    ,min(d_voa_record1.unadjustedprice) AS min_sqm_rate
    ,count(d_voa_record1.unadjustedprice) AS sample_no
    ,max(d_voa_record1.spec_catcode) AS scat_code
    ,avg(d_voa_record1.unadjustedprice) AS avg_rate
    ,median(unadjustedprice)
FROM processed_data.d_voa_record1
GROUP BY d_voa_record1.spec_catcode;

Я работаю на Postgres 9,6

РЕДАКТИРОВАТЬ: В качестве комментариев решение также предоставляет процентили диапазоны

1 Ответ

0 голосов
/ 15 мая 2018

Медиана можно найти с помощью функции непрерывный процентиль :

percentile_cont(0.5) within group (order by unadjustedprice) as median

А stddev_samp вычисляет стандартное отклонение :

percentile_cont(0.5) within group (order by unadjustedprice) -
     stddev_samp(unadjustedprice) as one_stddev_below_median

который вы можете умножить на 2, чтобы получить два стандартных отклонения ниже медианы:

percentile_cont(0.5) within group (order by unadjustedprice) -
    2 *  stddev_samp(unadjustedprice) as two_stddev_below_median
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...