如何计算 PrestoSQL 中的中位数?

Posted

技术标签:

【中文标题】如何计算 PrestoSQL 中的中位数?【英文标题】:How to compute a median in PrestoSQL? 【发布时间】:2021-01-09 19:11:34 【问题描述】:

Presto SQL 中似乎没有用于此目的的本机函数。你知道有什么方法可以有效地聚合一个组并返回它的中位数吗?

【问题讨论】:

【参考方案1】:

approx_percentile() 应该是一个合理的方法。假设像mytable(id, val) 这样的表,您希望通过id 聚合:

select id, approx_percentile(val, 0.5) median_val
from mytable
group by id

【讨论】:

请注意,这是一个近似的解决方案。即将发布的 Presto 版本将在一般情况下提供更高的准确性,请关注 github.com/prestosql/presto/pull/5158 了解详情。

以上是关于如何计算 PrestoSQL 中的中位数?的主要内容,如果未能解决你的问题,请参考以下文章

如何计算 Hive 中的中位数

java如何计算中位数

如何计算奇数个数据中位数,举例说明

如何计算 SQLite 中值的中位数?

如何计算向量中的位数? (在 R 中)

程序集 x86:如何计算 32 位长整数中的设置位数