meg*_*ges 9 postgresql postgis
我正在尝试构建一个在FROM语句中使用JOIN语句的别名的PostGIS查询,但这是不可能的.还有另一种方法吗?
SELECT DISTINCT
ST_Buffer(
ST_Centroid(geom),
ST_Area(geom))
FROM building AS b, ST_Transform(sg.geometry, 31467) AS geom
LEFT JOIN surface_geometry AS sg ON b.id = sg.cityobject_id WHERE ST_Area(geom) < 100
Run Code Online (Sandbox Code Playgroud)
ara*_*nid 10
您可以引入额外级别的子查询.
所以目前你有:
SELECT DISTINCT ST_Buffer( ST_Centroid(geom), ST_Area(geom) )
FROM building AS b,
ST_Transform(sg.geometry, 31467) AS geom
LEFT JOIN surface_geometry AS sg ON b.id = sg.cityobject_id
WHERE ST_Area(geom) < 100
Run Code Online (Sandbox Code Playgroud)
(我改变了缩进以使它更有意义,虽然我仍然不理解它:你似乎没有使用b中任何地方的值).你需要这样的东西:
SELECT DISTINCT ST_Buffer( ST_Centroid(geom), ST_Area(geom) )
FROM (
SELECT ST_Transform(sg.geometry, 31467) AS geom
FROM building AS b
LEFT JOIN surface_geometry AS sg ON b.id = sg.cityobject_id
) x
WHERE ST_Area(geom) < 100
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15438 次 |
| 最近记录: |