在一个Hive表中,我有他们的实际销售额和预测。所以数据看起来像:
item date salesDol salesUnit predictionU
1 1/1/2016 5.99 1 0.9
1 1/1/2016 5.49 1 0.9
1 2/1/2016 5.99 1 0.84
1 3/1/2016 6.04 1 0.92
为了计算平均价格,我做了:
create table data1 as
select item, date, predictionU from data
JOIN
(select sum(salesDol) as totDol, sum(salesUnit) as totUnit from data);
所以在我的每一排 totDol
以及 totUnit
. 现在,为了得到最终推断的销售单位,我尝试:
create table data2 as
select item, date, sum(predictionU)*totDol/totUnit from data1 group by item, date;
然后我得到一个错误,说:
失败:semanticexception[error 10025]:表达式不在group by键“totdol”中
我不明白为什么Hive要我包括 totDol
也在GROUPBY子句中。任何建议。
1条答案
按热度按时间smdncfj31#
只需使用窗口功能:
然后可以在最终查询中包含以下内容: