Как создать новый столбец в SQL, который отображает общее среднее значение для другого поля в каждой строке? - PullRequest
0 голосов
/ 26 февраля 2020

Я хотел бы выяснить, как я могу вставить среднее значение столбца в поле NEW в SSMS. Позвольте мне использовать следующую таблицу в качестве примера:

Style |   Car    | Sales
------|----------|-------
Sedan | Civic    | $100
Sedan | Accord   | $200
SUV   | CR-V     | $150
SUV   | Odyssey  | $150

Среднее значение этой таблицы составляет $ 150 {AVG (Sales)}

Что я хочу знать, так это как я могу создать новый вид, который вставляет это среднее в качестве нового столбца? Вид будет выглядеть примерно так:

Style |   Car    | Sales | Avg Sales
------|----------|-------|-----------
Sedan | Civic    | $100  | $150
Sedan | Accord   | $200  | $150
SUV   | CR-V     | $150  | $150
SUV   | Odyssey  | $150  | $150

Я провел значительный поиск, так как думал, что это будет простая операция. Однако я могу только найти информацию о том, как сгруппировать средние значения или как отобразить среднее.

1 Ответ

0 голосов
/ 26 февраля 2020

Используйте функции окна:

create view myview as
select
    t.*,
    avg(sales) over(partition by style) avg_sales
from mytable t

Если вы хотите получить среднее значение по всей таблице, то:

create view myview as
select
    t.*,
    avg(sales) over() avg_sales
from mytable t
...