sql - 解决 SUM 和 AVG,无法对包含聚合或子查询的表达式执行聚合函数
问题描述
我在 SQL 中有以下查询求和和平均值:
USE DBSTG_INT
GO
select distinct
sum(a.EventoPrecioReg) as PrecioRegular,
sum(a.EventoPrecioVta) as PrecioVenta,
AVG(VTA_IUnidades) as Unidades,
SUM((a.EventoPrecioVta - a.EventoPrecioReg) * (AVG(VTA_IUnidades))) as Inversion
from EventoPrecioDeta a WITH (NOLOCK)
当我执行它时,它显示以下问题:
消息 130,级别 15,状态 1,第 8 行
无法对包含聚合或子查询的表达式执行聚合函数。
我做错了什么,我该如何解决?
解决方案
select distinct
在这种情况下没有意义。您的问题是嵌套聚合。也许您打算:
select sum(a.EventoPrecioReg) as PrecioRegular,
sum(a.EventoPrecioVta) as PrecioVenta,
AVG(VTA_IUnidades) as Unidades,
SUM(a.EventoPrecioVta - a.EventoPrecioReg) * AVG(VTA_IUnidades) as Inversion
from EventoPrecioDeta a ;
推荐阅读
- javascript - h:inputText 只允许十进制数字
- spring-boot - Spring Boot Websocket 聊天和 RabbitMQ
- operating-system - 使用原始文件名将文件保存为不同的格式
- wpf - 几何绘图图像的VisualBrush模糊并被切断
- python - 最大熵(maxent)分类器的可重现结果
- postgresql - 错误:类型“几何”不存在第 2 行:添加列几何几何(点,4326)
- javascript - 使用 Javascript 从嵌套 JSON 中排序索引
- angular - 类型'可观察的
>' 不可分配给类型 'Observable ' - php - 使用 Preapproval key 进行 paypal 交易,无需用户认证
- javascript - 在 Node.js 中解析 Json,它将数字作为其关键参数