Прошу о помощи. 
Необходимо посчитать количество городов с хорошей детализацией.
Есть в таблице полигоны городов и зданий. Если они пересекаются - значит город с хорошей детализацией (информация о домах есть), считаем его.
Как составить запрос к базе (база большая)?
таблица polygons, колонка mp_type хранит тип объекта, 61 - город, 71 - дом.
			
			
									
						
										
						Посчитать количество городов
- 
				a.lineff
- Новоприбывший
- Сообщения: 6
- Зарегистрирован: 04 фев 2011, 14:44
- Репутация: 0
- rhot
- Гуру
- Сообщения: 1727
- Зарегистрирован: 25 янв 2011, 17:50
- Репутация: 194
- Ваше звание: доктор
- Откуда: Архангельск
Re: Посчитать количество городов
т.е. у вас пространственная информация об объектах типа "город", и объектах типа "дом" хранится в одном поле геометрии, что ли?
			
			
									
						
							___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________
			
						- rhot
- Гуру
- Сообщения: 1727
- Зарегистрирован: 25 янв 2011, 17:50
- Репутация: 194
- Ваше звание: доктор
- Откуда: Архангельск
Re: Посчитать количество городов
Код: Выделить всё
SELECT DISTINCT count(mp_type) FROM
         (SELECT the_geom, mp_type FROM polygons WHERE mp_type=61) AS towns,
         (SELECT the_geom, mp_type FROM polygons WHERE mp_type=71) AS buildings
                       WHERE ST_Contains(towns.the_geom,buildings.the_geom)=TRUE AND mp_type=61;
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________
			
						- 
				a.lineff
- Новоприбывший
- Сообщения: 6
- Зарегистрирован: 04 фев 2011, 14:44
- Репутация: 0
Re: Посчитать количество городов
Да, какие-то записи - города, какие-то - дома. Отличаются типом mp_type.rhot писал(а):т.е. у вас пространственная информация об объектах типа "город", и объектах типа "дом" хранится в одном поле геометрии, что ли?
- 
				a.lineff
- Новоприбывший
- Сообщения: 6
- Зарегистрирован: 04 фев 2011, 14:44
- Репутация: 0
Re: Посчитать количество городов
Чуть подредактировал, получился рабочий запрос. За подсказку спасибо большое.rhot писал(а):Не гарантирую, что код рабочий.Код: Выделить всё
SELECT DISTINCT count(mp_type) FROM (SELECT the_geom, mp_type FROM polygons WHERE mp_type=61) AS towns, (SELECT the_geom, mp_type FROM polygons WHERE mp_type=71) AS buildings WHERE ST_Contains(towns.the_geom,buildings.the_geom)=TRUE AND mp_type=61;
Код: Выделить всё
SELECT DISTINCT towns.gid FROM
         (SELECT the_geom, gid, mp_type FROM polygons WHERE mp_type = 61) AS towns,
         (SELECT the_geom, mp_type FROM polygonscd WHERE mp_type=71) AS buildings
                       WHERE ST_Contains(towns.the_geom,buildings.the_geom)=TRUE AND towns.mp_type=61;- rhot
- Гуру
- Сообщения: 1727
- Зарегистрирован: 25 янв 2011, 17:50
- Репутация: 194
- Ваше звание: доктор
- Откуда: Архангельск
Re: Посчитать количество городов
не за что =)
			
			
									
						
							___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________
			
						Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 7 гостей
