PostgreSQL процентный_конт возвращает одинаковое значение для всех процентилей - PullRequest
0 голосов
/ 29 мая 2018

Я пытаюсь извлечь процентили из некоторых данных, но получаю одинаковые значения для каждого процентиля.Почему?

SELECT three_sixty_review_aid, 
percentile_cont(0.95) within group (order by questions_combined asc) as p_95,
percentile_cont(0.75) within group (order by questions_combined asc) as p_75,
percentile_cont(0.5) within group (order by questions_combined asc) as p_50,
percentile_cont(0.25) within group (order by questions_combined asc) as p_25,
percentile_cont(0.1) within group (order by questions_combined asc) as p_10,
percentile_cont(0.05) within group (order by questions_combined asc) as p_05
FROM reviews_threesixty.peer_review_avg_combined_per_review
 group by three_sixty_review_aid

1 Ответ

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

Поскольку для каждой строки, состоящей из процентилей столбцов, необходимо возвращать несколько строк, если используется GROUP BY , все процентиль_конта столбцы образуют предоставленные одиночные строки three_sixty_review_aid имеет уникальные значения.Следовательно, если столбцы three_sixty_review_aid имеют уникальные значения, удалите группу по выражению, чтобы получить разные значения для строк, состоящих из процентных_конт столбцов:

SELECT  percentile_cont(0.95) within group (order by questions_combined asc) as p_95,
        percentile_cont(0.75) within group (order by questions_combined asc) as p_75,
        percentile_cont(0.5) within group (order by questions_combined asc) as p_50,
        percentile_cont(0.25) within group (order by questions_combined asc) as p_25,
        percentile_cont(0.1) within group (order by questions_combined asc) as p_10,
        percentile_cont(0.05) within group (order by questions_combined asc) as p_05
   FROM reviews_threesixty.peer_review_avg_combined_per_review;

Демонстрация скриптов SQL

...