我在hive上工作,我需要聚合一些值,并使用这些聚合结果需要派生另一个值。 例如: 销售
Item . sold_cnt . sold_price
-----------------------------
1 3 9
1 4 12
2 4 20
1 2 6
不,我想编写一个可以汇总每件商品的sold_cnt和sold_price的查询,还可以确定单个商品的成本。
截至目前我正在这样做,但不要认为那是对的。有人可以帮忙吗?
SELECT ITEM, TOTALCNT, TOTALPRICE, (TOTALPRICE/TOTALCNT) AS INDIPRICE
FROM(
SELECT ITEM, SUM(SOLD_CNT) AS TOTALCNT, SUM(SOLD_PRICE) AS TOTALPRICE,
FROM SALES GROUP BY ITEM
) A GROUP BY 1,2,3
答案 0 :(得分:2)
我认为你不需要子查询。试试这个
SELECT ITEM,
SUM(SOLD_CNT) AS TOTALCNT,
SUM(SOLD_PRICE) AS TOTALPRICE,
SUM(SOLD_PRICE)/SUM(SOLD_CNT) AS Weighted_average_item_cost
FROM SALES
GROUP BY ITEM
答案 1 :(得分:1)
或者,如果您仍想使用查询方法,则可以在外部查询中没有GROUP BY
的情况下执行此操作。
SELECT A.ITEM, A.TOTALCNT, A.TOTALPRICE, (A.TOTALPRICE/A.TOTALCNT) AS INDIPRICE
FROM
(
SELECT ITEM, SUM(SOLD_CNT) AS TOTALCNT, SUM(SOLD_PRICE) AS TOTALPRICE
FROM SALES
GROUP BY ITEM
) A