如何在 SQL 中创建一个新列来显示每行中另一个字段的总平均值?

How do I create a new column in SQL that displays the total average for another field in each row?

我想弄清楚如何在 SSMS 中插入列平均值作为新字段。让我以下面的 table 为例:

Style |   Car    | Sales
------|----------|-------
Sedan | Civic    | 0
Sedan | Accord   | 0
SUV   | CR-V     | 0
SUV   | Odyssey  | 0

这个 table 的平均值是 $150 {AVG(Sales)}

我想知道的是,如何创建一个新视图,将此平均值作为新列插入?视图看起来像这样:

Style |   Car    | Sales | Avg Sales
------|----------|-------|-----------
Sedan | Civic    | 0  | 0
Sedan | Accord   | 0  | 0
SUV   | CR-V     | 0  | 0
SUV   | Odyssey  | 0  | 0

我进行了一些重要的搜索,因为我认为这将是一个简单的操作。但是,我只能找到有关如何对平均值进行分组或如何显示平均值的信息。

使用window函数:

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

如果想要整体table的平均值,那么:

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