Как найти среднее в SQL, при этом используя среднее найти разницу между исходными значениями данных и средним

Я пишу запрос, чтобы получить конкретный результат.

Я пробовал использовать команду avg. Я не могу понять, как использовать вывод, чтобы найти разницу между общими значениями и средним значением.

select ProductID,ProductDescription,StandardPrice
from PRODUCT_TBL

select AVG(StandardPrice) as AveragePrice
from PRODUCT_TBL

Я ожидал, что результат будет средним из всех значений, которые я получил. Это просто найти разницу между начальными значениями и средним значением.

ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
1
0
69
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Если вы хотите найти разницу между стандартной ценой данной строки и средней таблицей, вы можете попробовать использовать 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;

Мы можем достичь желаемого набора результатов двумя различными способами, указанными ниже.

  1. Использование внутреннего запроса

    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

Другие вопросы по теме