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

unftdfkk  于 2022-10-31  发布在  其他
关注(0)|答案(1)|浏览(140)

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

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

km0tfn4u

km0tfn4u1#

使用窗口函数:

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

相关问题