我试图为列的每个不同值检索一个随机行 hash
. 我还需要dt列。
到目前为止,我得出了一个不起作用的问题:
INSERT OVERWRITE TABLE t PARTITION(dt)
SELECT hash, dt FROM (
SELECT hash, RAND() as r, dt FROM t1
UNION
SELECT hash, RAND() as r, dt FROM t2
) result
WHERE r IN (SELECT MAX(r) FROM result WHERE hash=result.hash);
查询失败,出现错误 Table not found 'result'
因为在from子句中使用了它 FROM result
.
如何修复此查询或在此使用什么其他方法?
1条答案
按热度按时间lnvxswe21#
你可以用
row_number
获取按r排序的每个哈希值最大的行。