Как я могу получить столбец окна среднего, не группируя его? - PullRequest
0 голосов
/ 28 апреля 2019

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

таблица похожа на

orignal table

и то, что я хочу, выглядит так:

a table with a new average column

Я знаю, что этоСупер легко сделать в Excel, но я хочу сделать это в SQL, что мне делать?

Ответы [ 2 ]

1 голос
/ 28 апреля 2019

Вы можете использовать оконную функцию OVER для среднего значения:

declare @t table (
  Id int primary key,
  Sales money not null
);

insert into @t (Id, Sales)
values
  (1,34),
  (2,23),
  (3,543),
  (4,234);

select t.Id, t.Sales, avg(t.Sales) over() as [Average]
from @t t;

Если вам нужно, чтобы ваши средние значения были сгруппированы по каким-либо критериям, поместите их в OVER(partition by ...).

0 голосов
/ 28 апреля 2019

Вы можете использовать AVG в оконной функции для всей таблицы:

SELECT id, sales, AVG(sales) OVER() AS [avg]
FROM dbo.Sales;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...