我正在编写查询以获取特定的输出。
我尝试使用avg
命令。我无法弄清楚如何使用输出来找到总值和平均值之间的差异。
select ProductID,ProductDescription,StandardPrice
from PRODUCT_TBL
select AVG(StandardPrice) as AveragePrice
from PRODUCT_TBL
我希望输出结果是所有值的平均值。只是找到初始值和平均值之间的差异。
答案 0 :(得分:5)
如果要查找给定行的标准价格和表的平均值之间的差额,可以尝试使用AVG
作为分析函数:
SELECT
ProductID,
ProductDescription,
StandardPrice,
AVG(StandardPrice) OVER () AS AvgStandardPrice,
StandardPrice - AVG(StandardPrice) OVER () AS Difference
FROM PRODUCT_TBL;
答案 1 :(得分:0)
您可以选择使用子查询来获取平均值
SELECT
ProductID,
ProductDescription,
StandardPrice,
StandardPrice - (SELECT AVG(StandardPrice) FROM PRODUCT_TBL) AS Difference
FROM PRODUCT_TBL;
答案 2 :(得分:0)
我们可以通过以下两种不同的方式来获得所需的结果集。
使用内部查询
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