count - 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)
因为如果我理解正确,它是一个近似值。
解决方案
你是对的,这approx_distinct
是一个近似的聚合函数。它的标准误差很小,因此它通常非常有用且效率更高count(DISTINCT x)
。
您的原始语法在 Athena 所基于的 Presto 中还不起作用。见https://github.com/trinodb/trino/issues/5523
推荐阅读
- c++ - ffmpeg 仅发布播放列表,但不发布 HLS 片段
- python - !head 在 python 和 NumPy 中做了什么?
- c# - 当我将应用程序发布到 Azure 时,为什么我的控制器端点会中断
- android - AndroidX 多个 Preferences 实例
- mongodb - 如何使用 mongodb 解决打字稿问题
- f# - F# VS 2019 语法颜色编码
- kubernetes - 如何在 dnsConfig 中将节点 ip 设置为名称服务器?
- java - 如何在 Java Spring 中合并两个列表
- swift - Xcode:持续消息。文档存在已发现并修复的问题
- c++ - 如何避免在模板类中重新定义 typedef?