Написание SQL-запроса с использованием геометрии postgis для одной и той же таблицы - PullRequest
0 голосов
/ 27 февраля 2019

Я довольно новичок в написании SQL-запросов, так что спасибо заранее.У меня есть таблица postgres, которая называется geo_areas.Эта таблица содержит список городов, поселков и штатов.У меня есть столбец с именем type, который указывает, является ли это город или город или штат.У меня также есть столбец с именем Geometry, который содержит геометрию указанного имени.Это выглядит примерно так:

Name, Type, Geometry

Philadelphia, Town, XXXXXXXXXX
Pennsylvania, State, XXXXXXXXXXX
Pittsburgh, Town, XXXXXXXXXXX
Porsche, City, XXXXXXXXX

Мне нужно написать запрос, в котором перечислены все другие имена, содержащиеся в его геометрии, аналогично этому.

Name, Type, Contains

Pennsylvania, State, [Porsche, Pittsburg, Philadelphia]
Porsche, City, [Philadelphia, Pittsburgh]
Philadelphia, Town, []
Pittsburgh, Town, []

Любая помощь дляспасибо за шаг в правильном направлении, спасибо!

1 Ответ

0 голосов
/ 27 февраля 2019

при условии, что вы хотите, чтобы геометрия содержалась в состоянии, которое вы можете попробовать

select t2.* 
from  my_table t1  
inner join my_table t2 on st_dwithin(t1.geom,t2.geom, 0) 
and t1.type='State' 
and t2.type!='State' 

или для st_contains

select t2.* 
from  my_table t1  
inner join my_table t2 on st_contains(t2.geom,t1.geom) 
and t1.type='State' 
and t2.type!='State' 
...