假设我的subquery产生了许多列(x,y)的行,我想计算值avg(abs(x-mean)/y)。其中有效的meanavg(x)
select avg(abs(x-avg(x))/y) as incline from subquery失败,因为我无法嵌套聚合函数。在保留原始结果集的同时,我也无法想出计算子查询中平均值的方法。AVGDEV函数在其他方言中的存在并不能帮助我,所以我陷入了困境。可能只是由于缺乏sql知识-在后处理中从结果集计算值很容易。
哪个SQL构造可以帮助我?
编辑:服务器版本是8.3.4。这里没有WITHOVER的窗口功能。

最佳答案

我不确定我对你的理解是否正确,但你可能在寻找这样的东西:
选择平均值(x-平均值/y)
从(
选择x,
是的,
平均值(x)作为平均值(按您的分组列划分)
从你的桌子上
)t型
如果不需要对结果进行分组以获得正确的平均值(x),则只需使用空over省去“partition by”:over()

关于postgresql - 避免在PostgreSQL 8.3.4中嵌套聚合函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3565074/

10-14 07:46