У меня есть таблица с таймингами, где мы храним 1 миллион таймингов ответов для тестирования нагрузки, теперь нам нужно разделить эти данные на 100 групп, то есть - первые 500 записей, как одна группа и так далее, и вычислить процентиль каждой группы, а не средний.Как вычислить процентиль в postgres
до сих пор я попробовал этот запрос
Select quartile
, avg(data)
, max(data)
FROM (
SELECT data
, ntile(500) over (order by data) as quartile
FROM data
) x
GROUP BY quartile
ORDER BY quartile
но как я должен найти процентиль
каждая группа содержит 500 записей, так как было бы 100 групп .. так что ntile будет автоматически вычислять процентили? для каждой группы? – lampdev
Не знаете, что вы подразумеваете под «каждая группа содержит 500 записей». Какие группы? Все ваши данные находятся в таблице данных. 'ntile (100)' на этих данных будет ведро данных в 100 групп, однако много строк, которые будут. И именно так можно вычислить процентиль для любого заданного набора данных. Если сначала вы разбили на 500 групп, это уже не процентиль ... – khampson
нам нужно построить график процентиля, который идет от asc до desc order .. table содержит 50 000 таймингов, теперь нам нужно разделить эти 50 000 таймингов на групп и вычислять процентили для каждой группы, я немного смущен этим. или как мы можем достичь этого? – lampdev