使用 HUE/IMPALA 计数不同

Posted

技术标签:

【中文标题】使用 HUE/IMPALA 计数不同【英文标题】:Count distinct with HUE/IMPALA 【发布时间】:2020-09-03 17:54:29 【问题描述】:

我在 HUE 中有一张桌子,例如:

ID,ProductID 
1,1
1,2
1,1
1,3 
1,1
1,2
1,1
1,3
2,1   
2,2
2,2
2,2
2,1   
2,2
2,2
2,2

我需要计算每个 ID 的不同 ProductID 数量。

类似这样的:

ID,ProductID, CountofProductID 
1,1,3
1,2,3
1,1,3
1,3,3
2,1,2   
2,2,2
2,2,2
2,2,2

我试过了:

SELECT ID,ProductID, count(ProductID) over (partition by ID Sort by ProductID)
GROUP BY ID, ProductID

我真正需要做的是分析函数内部的计数(不同)。 HUE 不允许我这样做。

还有另一种方法可以计算不同的行窗口吗?

【问题讨论】:

我似乎无法理解其中的逻辑。为什么结果集中有重复的 id/product 元组? 【参考方案1】:

您的示例数据令人困惑。但是,您可以使用子查询和连接来解决分析不同计数的限制:

select t.*, x.cnt
from mytable t
inner join (
    select id, count(distinct product_id) cnt
    from mytable t
    group by id 
) x on x.id = t.id

【讨论】:

以上是关于使用 HUE/IMPALA 计数不同的主要内容,如果未能解决你的问题,请参考以下文章

如何使用单个查询获取存储在不同变量中的多个表行的计数?

选择多个不同条件的计数,只计数不同,在一行中返回结果

在使用子句时计数不同

使用 pig 脚本计算字段的不同值的计数

flink计数不同的问题

SQL查找不同值计数,2次重复值计数,3次重复值计数等