用 HUE/IMPALA 计数不同

Count distinct with HUE/IMPALA

我在 HUE 中有一个 table,例如:

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 的产品 ID 的不同数量。

像这样:

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 不允许我这样做。

有没有其他方法可以计算 window 行的不同值?

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

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