sql+使用聚合函数在同一查询中生成结果

hzbexzde  于 2021-06-26  发布在  Hive
关注(0)|答案(2)|浏览(317)

我正在处理配置单元,我需要聚合一些值,使用这些聚合结果需要派生另一个值。例如:销售

Item .  sold_cnt . sold_price
-----------------------------
1         3         9
1         4         12
2         4         20
1         2          6

不,我想写一个查询,该查询将汇总每个项目的销售成本和销售价格,并确定单个项目的成本。
到目前为止,我这样做,但不认为这是正确的。有人能帮忙吗?

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
mgdq6dx1

mgdq6dx11#

我认为您不需要子查询。试试这个

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
2izufjch

2izufjch2#

或者,如果您仍然想使用查询方法,可以不使用 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

相关问题