在PostgreSQL中,创建并附加一个新列

问题描述 投票:0回答:1

我想获得每种类型的平均值,然后将聚合表作为原始表中的新列加入。这是我正在尝试做的可视化和代码:

-- The original table --

ID | Cnt | Type
 1    5     A
 1    6     A   
 2    4     B

-- New Table -- 

ID | Cnt | Type | Avg
 1    5     A     5.5
 1    6     A     5.5
 2    4     B     4.0

我到目前为止编写的代码如下:

select AVG(Cnt)
  from old
group by(type)
right join on old

但是,显然它不正确,因为引发了语法错误。对此有什么解决方法?如果我的问题类似于现有问题,我会提前道歉。

sql postgresql
1个回答
1
投票

使用窗口功能:

select o.*, avg(cnt) over (partition by type)  
from old o;
© www.soinside.com 2019 - 2024. All rights reserved.