SQL 总和的平均值

SQL Average of a Sum

我正在尝试按工作中心计算平均可用性,为此我正在计算机器上的生产小时数除以轮班小时数。问题是当一台机器上有多个作业 运行 一个班次时,我需要将所有这些生产时间相加并除以 8,然后才能得到平均值。

我希望这是有道理的...这是我当前的 SQL 代码,它正在返回 "ORA-00937: not a single-group group function"

Select WORK_CENTER.EQNO,
AVG((Sum(V_COMB_PROD_CRW1.PROD_HRS) / 8 * 100)) As Available
From WORK_CENTER
Left Join V_COMB_PROD_CRW1 On WORK_CENTER.EQNO = V_COMB_PROD_CRW1.EQNO
Group By WORK_CENTER.EQNO

这里的问题是你正在做一个聚合的聚合,而引擎不会接受它。 您需要找到班次的标识符(我称之为 shiftID_Column)。每个班次获得 sum/8 并通过 EQNO 计算平均值 相反:

select EQNO, avg(Available_Pershift) as Available
from
(
  Select shiftID_Column, WORK_CENTER.EQNO,
 (Sum(V_COMB_PROD_CRW1.PROD_HRS) / 8 * 100)  As Available_Pershift
  From WORK_CENTER
  Left Join V_COMB_PROD_CRW1 On WORK_CENTER.EQNO = V_COMB_PROD_CRW1.EQNO
  Group By shiftID_Column, WORK_CENTER.EQNO
) group by EQNO