首页 > 解决方案 > Amazon Athena - 如何计算不同的值?

问题描述

我正在尝试按另外两列分组后计算不同的值。

在 Oracle 中,此查询将如下所示:

SELECT column_1,
       column_2,
       column_3, 
       COUNT(DISTINCT (column_1) OVER(PARTITION by column_2, column_3) as "count_distinct"
FROM table;

在雅典娜,同样,我做到了

SELECT column_1,
       column_2,
       column_3, 
       APPROX_DISTINCT(column_1) OVER(PARTITION by column_2, column_3) as "count_distinct"
FROM table;

但是,我不确定是否approx_distinct与此相同,count(distinct)因为如果我理解正确,它是一个近似值。

标签: countaggregationamazon-athena

解决方案


你是对的,这approx_distinct是一个近似的聚合函数。它的标准误差很小,因此它通常非常有用且效率更高count(DISTINCT x)

您的原始语法在 Athena 所基于的 Presto 中还不起作用。见https://github.com/trinodb/trino/issues/5523


推荐阅读