问题描述
我有一个表格,我想添加一个列,它是所有行(不是按组)的平均值。
比如表格是这样的:
name num
a 1
b 2
我希望得到:
name num avg_num
a 1 1.5
b 2 1.5
我试过了:
select name,num,avg(num)
from table
group by name,num
然而,它返回
name num avg_num
a 1 1
b 2 2
那么我怎样才能实现我的目标?
解决方法
您可以指定一个空窗口(覆盖整个表格)
select name,num,avg(num) over() as avg_num from table;