加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

postgresql – 如何计算postgres中的百分位数

发布时间:2020-12-13 16:34:05 所属栏目:百科 来源:网络整理
导读:我有一个称为时间的表,我们正在为负载测试存储100万个响应时间,现在我们需要将这些数据分成100组,即 – 前500个记录作为一个组,依此类推,并计算每个组的百分位数,而不是平均值. 到目前为止我尝试了这个查询 Select quartile,avg(data),max(data) FROM ( SELE
我有一个称为时间的表,我们正在为负载测试存储100万个响应时间,现在我们需要将这些数据分成100组,即 – 前500个记录作为一个组,依此类推,并计算每个组的百分位数,而不是平均值.

到目前为止我尝试了这个查询

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

但我怎么找到百分位数

ntile是如何计算百分位数(以及其他n-tiles,例如四分位数,十分位数等).

ntile将表分组到指定数量的桶中尽可能相等.如果你指定了4个桶,那将是一个四分位数. 10将是十分位数.

对于百分位数,您可以将桶数设置为100.

我不确定500在这里的位置…如果你想确定你的数据在哪个百分位(即将百万个时间分成尽可能平均分为100个桶),你可以使用ntile,参数为100,这些小组将有超过500个条目.

如果你不关心avg或max,你可以从查询中删除一堆.所以它看起来像这样:

SELECT data,ntile(100) over (order by data) AS percentile
FROM data
ORDER BY data

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读