我有一个Hive表“tab”,表示以下两个字段:“timewindow product_id_scanned”
我需要一个查询来列出结果,例如:“product_id%count_seen_in_window”
从表面上看,查询看起来像: “通过id”
从标签组中选择id,count(distinct timewindow)/ tot现在,tot来自代表时间间隔列表的查询: “从tab tot中选择不同的时间窗”
如何在一个查询中获取结果?
答案 0 :(得分:0)
这是某些Hive限制的一种解决方法,但希望它有所帮助:
SELECT
product_id_scanned, COUNT(DISTINCT timewindow)/tot
FROM (
SELECT
tab.product_id_scanned AS product_id_scanned,
tab.timewindow AS timewindow,
tot.tot AS tot
FROM
tab, (SELECT COUNT(DISTINCT timewindow) AS tot FROM tab) tot
) tot_added
GROUP BY product_id_scanned, tot;
虽然不是特别优雅,但这里的方法是创建一个中间表,其中tot
值作为额外列附加到每一行。