问题描述
我有一个配置单元表,其中包含大约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;