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
我正在尝试按工作中心计算平均可用性,为此我正在计算机器上的生产小时数除以轮班小时数。问题是当一台机器上有多个作业 运行 一个班次时,我需要将所有这些生产时间相加并除以 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