3

私はまだSQLに慣れていません。postgresqlを1週間使用しています。私は少し立ち往生しています..

NY データセット ( http://workshops.opengeo.org/postgis-intro/about_data.html ) を使用しています。

対応する区の平均よりも多くのアジア人人口を持つすべての地域をリストする方法を見つける必要があり、アジア人人口の割合を表示する必要があります。

私はこれについて考えました:

select name, 100 * sum(c.popn_asian)/(select (avg(popn_asian)) from nyc_census_blocks group by boroname)
from nyc_neighborhoods n, nyc_census_blocks c
where (ST_Contains(n.geom, c.geom) = true )
and (sum(c.popn_asian)) > (select avg(popn_white) from nyc_census_blocks c1 group by c1.boroname) 

しかし、私は明らかにwhere句の後に合計を使用することを声に出して言っていません...理由を知り、この問題を解決する方法を学びたいです。

ありがとう

4

2 に答える 2

5
select name, 100 * sum(c.popn_asian)/(select (avg(popn_asian)) from nyc_census_blocks group by boroname)
from nyc_neighborhoods n, nyc_census_blocks c
where ST_Contains(n.geom, c.geom) = true 
group by name
having sum(c.popn_asian) > (select avg(popn_white) from nyc_census_blocks c1 group by c1.boroname) 
于 2012-11-05T18:31:58.823 に答える
1

havingこの問題には句を使用する必要があります。

于 2012-11-05T18:30:12.720 に答える