sql - 使用 hive 获取 Avg、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), percentile(sold, 0.95), percentile(sold, 0.99)
from t
group by fruit;
推荐阅读
- html - 努力使用下拉输入菜单计算和打印结果
- c# - 从对象数组中获取值更改的索引数组或第一个不同的值
- python - 如何删除嵌套的for循环?
- python-3.x - AWS Textract 创建可搜索的 PDF - 寻找 python 代码
- r - 如何在ggplot2中转换辅助y轴和比例
- java - Android:java.lang.IllegalArgumentException:未知颜色错误
- python - Python 子包 - 绝对导入失败
- pdf - 使用 Pandoc 将 Typora Markdown 批量转换为 PDF 的推荐方法
- python - 如何在 PySpark 中将十六进制字符串转换为十六进制字节格式
- java - 计算对角线数量时运行时错误女王可以从java中棋盘上的特定位置攻击