使用配置单元获取平均,p50,p95和p99

问题描述

我有一个配置单元表,其中包含大约3000万行

fruit   sold
----------------
apple   5
apple   10
apple   3
orange  2
orange  5

为此,我想获得像avg,p50,p90和p99这样的水果

fruit   avg     p50     p95     p99
apple   6       4       4       2
orange  3.5     3       3       4

解决方法

您可以使用percentile()

select fruit,avg(sold),percentile(sold,0.5),0.95),0.99)
from t
group by fruit;