【问题标题】:Aggregate function causing errors in SQL聚合函数导致 SQL 错误
【发布时间】:2018-06-15 18:21:24
【问题描述】:

尝试使用以下语句根据同一张表中的几个值建立生产百分比:

SELECT avg(sum([Actual]/
(sum(NULLIF([Team Members],0)/(sum(NULLIF([Actual Min],0)))))))
FROM [Shift Production Log]
WHERE [Date] >= DATEADD(dw, -2, :dvalue) AND
  [Line] = :Lpram

我收到以下错误:

无法对包含聚合或子查询的表达式执行聚合函数。

我还应该指定我是通过一个 SCADA 系统执行此操作的,该系统将放置我绑定的参数,即“Lpram”和“dvalue”。这些在其他语句中工作正常,所以看来我的问题是实际的 select 语句本身。谢谢!

样本数据:

【问题讨论】:

  • sum 聚合移动到子查询中,然后在派生字段上使用avg

标签: sql sum aggregate scada


【解决方案1】:

你有一个聚合函数

sum([Actual]/
(sum(NULLIF([Team Members],0)/(sum(NULLIF([Actual Min],0))))))

这将是一个数字

然后您尝试对此进行平均,但这不是标量。就像跑步一样

select avg(sum(1))

这样不行

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-25
    • 1970-01-01
    • 1970-01-01
    • 2022-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多