2013-03-23 112 views
0

我有一個表,其中有很多冗餘點,我想選擇不同的點使用(不同),並選擇一些行的平均值(如rscp)。 我們這裏有一個例子:AVG沒有給出正確的值 - Postgresql

| id | point     | rscp | ci 
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 
| 1 | POINT(10.1192 36.8018) | 10  | 701 
| 2 | POINT(10.1192 36.8018) | 11  | 701 
| 3 | POINT(10.1192 36.8018) | 12  | 701 
| 4 | POINT(10.4195 36.0017) | 30  | 701 
| 5 | POINT(10.4195 36.0017) | 44  | 701 
| 6 | POINT(10.4195 36.0017) | 55  | 701 
| 7 | POINT(10.9197 36.3014) | 20  | 701 
| 8 | POINT(10.9197 36.3014) | 22  | 701 
| 9 | POINT(10.9197 36.3014) | 25  | 701 

什麼,我想是這樣的表如下:(rscp_avg是冗餘點的RSCP的平均值)

| id | point     | rscp_avg | ci 
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 
| * | POINT(10.1192 36.8018) | 11   | * 
| * | POINT(10.4195 36.0017) | 43   | * 
| * | POINT(10.9197 36.3014) | 22.33  | * 

我想這一點,但它給了我一個錯誤的平均值!

select distinct on(point) 
id,st_astext(point),avg(rscp) as rscp_avg,ci 
from mesures 
group by id,point,ci; 

感謝您的幫助(^_^)

回答