查询每个范围的平均值?

时间:2012-07-28 09:55:41

标签: postgresql average postgresql-9.1

这是我的表

GID | Distance (KM) | Subdistance (KM) | Iri_avg
-------------------------------------------------
 1  |   13.952      |  0               | 0.34
 2  |   13.957      |  0.005           | 0.22
 3  |   13.962      |  0.010           | 0.33
 4  |   13.967      |  0.015           | 0.12
 5  |   13.972      |  0.020           | 0.35
 ...

我想为每个范围找到Iri_avg的AVG, 例如......

每5米(默认情况下) 每10米 每100米 每500米

什么是PostgreSQL查询来解决这个问题?

1 个答案:

答案 0 :(得分:1)

你的问题不清楚。您的数据有两个距离列,您指的是哪一个?

以下是如何根据子电阻获得平均值的示例。

select floor(subdistance*1000)/5.0)*5.0 as lower_bound, avg(iri_avg) as avg_ari_avg
from t
group by floor(subdistance*1000)/5.0)*5.0
order by 1

表达式“floor(subdistance * 1000)/5.0)* 5.0”得到的最接近的5米增量小于该值。您可以将“5”替换为“10”或“100”以进行其他装箱。

这是一个例子。目前还不清楚你想要哪个列,你想要做什么关于空箱,以及你是在寻找单个查询中的所有bin宽度而不是查询来处理一个bin宽度。