【问题标题】:SQL Average of a Sum总和的 SQL 平均值
【发布时间】:2020-02-13 01:29:16
【问题描述】:

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

【问题讨论】:

  • 样本数据、所需结果和适当的数据库标签会有所帮助
  • what 的平均值究竟是什么?平均每日值等?还有什么?示例数据在这里会很有帮助。
  • 我想你想为每个工作中心的每台机器计算总和,然后计算每个工作中心的平均值。如果是这样的话,那么你把机器带入图片中。

标签: sql sum average


【解决方案1】:

这里的问题是你正在做一个聚合的聚合,引擎不会接受它。 您需要找到班次的标识符(我称之为 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多