如何在 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
我想弄清楚如何在 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