создание слоя из выборки
- 
				Анна
 - Завсегдатай
 - Сообщения: 386
 - Зарегистрирован: 07 фев 2004, 14:31
 - Репутация: 7
 - Откуда: Лозанна
 - Контактная информация:
 
создание слоя из выборки
и еще один вопрос сразу:)
есть слой загруженный в базу, делаю select'ом выборку по некоторому столбцу и теперь хочу сохранить выборку отдельной таблицей (слоем) в базе.
Как это сделать?
			
									
									
						есть слой загруженный в базу, делаю select'ом выборку по некоторому столбцу и теперь хочу сохранить выборку отдельной таблицей (слоем) в базе.
Как это сделать?
- 
				KolesovDmitry
 - Гуру
 - Сообщения: 810
 - Зарегистрирован: 22 авг 2007, 14:58
 - Репутация: 123
 - Откуда: Казань
 
Re: создание слоя из выборки
У select есть модификация для сохранения результата запроса в таблицу: SELECT INTO.Анна писал(а): есть слой загруженный в базу, делаю select'ом выборку по некоторому столбцу и теперь хочу сохранить выборку отдельной таблицей (слоем) в базе.
- 
				Анна
 - Завсегдатай
 - Сообщения: 386
 - Зарегистрирован: 07 фев 2004, 14:31
 - Репутация: 7
 - Откуда: Лозанна
 - Контактная информация:
 
Re: создание слоя из выборки
супер, спасибо огромное!
			
									
									
						- 
				Анна
 - Завсегдатай
 - Сообщения: 386
 - Зарегистрирован: 07 фев 2004, 14:31
 - Репутация: 7
 - Откуда: Лозанна
 - Контактная информация:
 
Re: создание слоя из выборки
Еще возник вопрос посложнее:)
Есть таблица точек встреч видов (occurences_tbl). В ней колонка "species" - название вида. Нужно в цикле пройтись по всем уникальным названиям видов и экспортировать все точки встреч для каждого отдельного вида в отдельную же таблицу названную именем вида. Видов более 500, а точек встреч около 200 000, то есть руками ну никак не хочется делать.
Написала вот такой запрос:
но уверена, что не правильный синтаксис. Подскажите, пожалуйста куда смотреть? что корректировать?
			
									
									
						Есть таблица точек встреч видов (occurences_tbl). В ней колонка "species" - название вида. Нужно в цикле пройтись по всем уникальным названиям видов и экспортировать все точки встреч для каждого отдельного вида в отдельную же таблицу названную именем вида. Видов более 500, а точек встреч около 200 000, то есть руками ну никак не хочется делать.
Написала вот такой запрос:
Код: Выделить всё
FOR unique_species_names IN SELECT count FROM occurences_tbl GROUP BY species LOOP
	EXECUTE SELECT * INTO  quote_ident(unique_species_names) FROM  occurences_tbl WHERE occurences_tbl.species = quote_ident(unique_species_names);
END LOOP;- Denis Rykov
 - Гуру
 - Сообщения: 3376
 - Зарегистрирован: 11 апр 2008, 21:09
 - Репутация: 529
 - Ваше звание: Author
 - Контактная информация:
 
Re: создание слоя из выборки
Поставленную задачу можно решить, например, с помощью PL/Python, если Python присутствует в системе:
			
									
									Код: Выделить всё
CREATE PROCEDURAL LANGUAGE 'plpythonu' HANDLER plpython_call_handler;
CREATE OR REPLACE FUNCTION tbls()
  RETURNS text
AS $$
  rv = plpy.execute("SELECT DISTINCT species from occurences_tbl where species<>''")
  for i in range(len(rv)):
      plpy.execute("SELECT * INTO "+rv[i]['species']+" from occurences_tbl where species='"+rv[i]['species']+"'")
$$ LANGUAGE plpythonu;
select tbls();
Spatial is now, more than ever, just another column- The Geometry Column.
						Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 12 гостей