如何计算列的每个值所在的百分位数? (Spark SQL)[重复]

Posted

技术标签:

【中文标题】如何计算列的每个值所在的百分位数? (Spark SQL)[重复]【英文标题】:How can I calculate what percentile each value of a column is in? (Spark SQL) [duplicate] 【发布时间】:2021-04-19 20:08:28 【问题描述】:

我有下表:

Person Score
1 3.5
2 6.5
3 2.1
4 8.3
5 5.4

我有多个人,每个人只有一个分数。每个分数都是 10.0 分。

我想知道每个人的分数在哪个百分位。例如,第 2 个人的 6.5 分在第 x 个百分位,以此类推。

无法弄清楚语法,希望得到一些帮助。

【问题讨论】:

【参考方案1】:

可能最简单的方法是排名与计数的比率:

select rank(score) over (order by score) * 100.0 / count(*) over ()

【讨论】:

以上是关于如何计算列的每个值所在的百分位数? (Spark SQL)[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Apache Spark:数据框中行值列表的百分比

计算数据集列的百分位数

如何在 numpy / scipy 中获取特定百分位数的索引?

在 BigQuery 中计算百分位数

计算特定组的百分位数

计算特定组的百分位数