0
每組的日期範圍我有一定的日期和產品類型的表總和超過在蜂巢
Product Process_Date Prod_Count
A 2015-08-01 2
A 2015-09-03 2
A 2015-05-06 3
B 2014-01-01 4
B 2014-12-31 5
我想每一行計算,產品的條目從過去6個月計處理日期(包括process_date)。所以輸出應該看起來像
Product Process_Date Count
A 2015-08-01 5
A 2015-09-03 7
A 2015-05-06 3
B 2014-01-01 4
B 2014-12-31 5
目前我在做自聯接
SELECT
q.Product, q.Process_Date, SUM(Prod_Count) AS num_180days
FROM tableT p
INNER JOIN (
SELECT DISTINCT Product, Process_Date
FROM tableT
) q
ON p.Product = q.Product
WHERE Process_Date BETWEEN DATE_SUB(q.Process_Date, 180) AND q.Process_Date
GROUP BY q.Product, q.Process_Date;
此查詢時間很長,因爲表是相當大的。我想知道是否有替代使用窗口功能來做到這一點。
謝謝!
子查詢似乎是不必要的。爲什麼你不能在tableT.Product和tableT.Process_Date上分組?子查詢對於Hive中的性能來說是個壞消息。 –
@ chipmunkofdoom2你能否詳細說明如何避免組的子查詢? – Nitin
通過執行GROUP BY p.Product,p.Process_Date; '。子查詢似乎沒有做任何事情。它只是從tableT中提取不同的產品和Process_Dates,然後再回到tableT。這應該不會影響行數。加入'p.Product'和'p.Process_Date'應該會給你相同的結果。 –