我正在编写查询以获取特定输出。
我尝试过使用avg
命令。我无法弄清楚如何使用输出来找出总值和平均值之间的差异。
select ProductID,ProductDescription,StandardPrice
from PRODUCT_TBL
select AVG(StandardPrice) as AveragePrice
from PRODUCT_TBL
我期望输出是我得到的所有值的平均值。只是找到初始值和平均值之间的差异。
如果要查找给定行的标准价格与表格平均值之间的差异,您可以尝试使用AVG
作为分析函数:
SELECT
ProductID,
ProductDescription,
StandardPrice,
AVG(StandardPrice) OVER () AS AvgStandardPrice,
StandardPrice - AVG(StandardPrice) OVER () AS Difference
FROM PRODUCT_TBL;
您可以选择使用子查询来获取平均值
SELECT
ProductID,
ProductDescription,
StandardPrice,
StandardPrice - (SELECT AVG(StandardPrice) FROM PRODUCT_TBL) AS Difference
FROM PRODUCT_TBL;
我们可以通过两种不同的方式实现所需的结果集,如下所示。
SELECT ID, NAME, PRICE,
(SELECT AVG(PRICE) FROM #A ) AS AVGSTANDARDPRICE,
(PRICE - ( SELECT AVG(PRICE) FROM #A )) AS DIFFRENCE
FROM #A
2.使用预定义的计算平均价格。
DECLARE @AVGPRICE MONEY
SET @AVGPRICE = ( SELECT AVG(ISNULL(PRICE,0)) FROM #A )
SELECT ID,
NAME,
PRICE,
@AVGPRICE AS AVGSTANDARDPRICE,
(PRICE - @AVGPRICE ) AS DIFFRENCE
FROM #A