我想按列分组,然后从另一列中选择随机行。在 Presto,有 arbitrary
.
例如。我的查询是:
SELECT a, arbitrary(b)
FROM foo
GROUP BY a
我如何在 Hive 中做到这一点?
编辑:
“随机”,我的意思是“任意”。每次都可能只是第一行。
最佳答案
您可以使用以下逻辑在 Hive 中获得所需的结果。
为 rand(b) 提供一个 row_number 并选择您想要的任何 row_number。每次它都会从 b 列返回一个随机值。
select a, b
from (
select a, b,row_number() over( partition by a order by rand(b) asc) rn from foo
)a
where rn=1
group by a, b;
关于sql - 在 Hive 中选择一个随机行作为聚合函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44809449/