在AWS Athena表中为每个组计算中位数

4
以下是 Athena 表的模式
以下是按照 standard_lab_parameter_name 和 units 分组的 parameter_value 的中位数计算方法。我参考了此链接:https://docs.aws.amazon.com/redshift/latest/dg/r_MEDIAN.html。但是,在运行查询时出现问题。请看下面的链接: enter image description here
select median(parameter_value) from table_name group by standard_lab_parameter_name, units

它抛出错误

 SYNTAX_ERROR: line 1:8: Function median not registered

需要帮助吗?或者如果有其他查询方式会更好。


Athena不是Redshift。 - Nick
这个或者这个可能会有所帮助。如果你只是谷歌搜索“SQL计算中位数”,就会有很多其他的解决方案。 - Nick
1个回答

12

Athena基于Presto 0.172 - 您可以在AWS DML Queries, Functions, and Operators中查看所有支持的函数。我猜你可以使用approx_percentile(x, percentage)approx_percentile(x, w, percentage, accuracy),请参阅Presto聚合函数

返回x的所有输入值在给定百分比上的近似百分位数。 百分比的值必须介于零和一之间,并且必须对所有输入行保持不变。

select approx_percentile(parameter_value,0.5) 
from table_name 
group by standard_lab_parameter_name, units

请记住这是近似聚合函数。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接