Отримання списку відмінних значень із поля формату за допомогою QGIS?


18

У мене є файл профілю, функції якого я можу відфільтрувати, вказавши пункт де у діалозі запитів. Fx У мене є поле з назвою 'city_name' і вказавши 'city_name = "London"' у пункті, де відображається лише Лондон. Що я хотів би зробити зараз, це отримати всі значення у "city_name" з таблиці атрибутів.

Щось схоже:

select distinct city_name from [attribute table]

Я знайшов кілька інструментів у QGIS, мабуть, що стосуються SQL, і я також швидко ознайомився з різними плагінами. Але я не вдається підключитися до бази даних або імені таблиці ... яка база даних або яка таблиця в цьому випадку?

Зрештою, я хочу експортувати список результатів і використовувати його для подальшої обробки.

Я використовую QGIS 1.8.

Відповіді:


32

Оновити відповідь (версія QGIS> = 2,14)

Починаючи з QGIS 2.14 , ви можете використовувати запускати оператори SQL на будь-якому завантаженому векторному шарі, використовуючи віртуальні шари .

  1. Завантаживши шар у QGIS, перейдіть до шару> Додати шар> Додати / змінити віртуальний шар ;
  2. У діалоговому вікні Створення віртуального рівня введіть у поле Запит запит SQL. Щось на зразок:

    ВИБІРТЕ DISTINCT ім'я міста FROM_імена шару

  3. Для геометрії встановіть No Geometry

  4. Натисніть кнопку Ок, і таблиця завантажиться в QGIS з потрібними унікальними значеннями.

Примітка: ця таблиця буде оновлена, якщо нові значення будуть додані в стовпчик_імені міста.

Спадковий відповідь (версія QGIS <2.14)

У вас є кілька варіантів зробити те, що ви просите.

  1. Імпортуйте свій файл форм у базу даних Spatialite або Postgis, і тоді ви можете запитувати свою таблицю за допомогою повних операторів SQL;
  2. Використовуйте інструмент "Розчиняти" (Вектор> Інструменти геопроцедури> Розчинити), щоб розчинити файли форм за допомогою поля "ім'я міста". Хоча це дивний метод, dbf-файл отриманого формфайлу надасть потрібний вам список;
  3. Погляньте на плагін групової статистики (1.6) , ви можете використовувати "ім'я міста" як поле класифікації та натисніть обчислити. Він підрахує статистику щодо кожного міста, потім можна скопіювати результат та витягнути список міст.

Я щойно помітив, що в Інструментах аналізу> Вектор> існує унікальний список значень , який саме є необхідним для виконання цього завдання. Так просто ... ніяких обхідних шляхів і немає потреби в плагінах.


6

Використовуйте QGIS DB Manager і отримуйте доступ до свого формату через "віртуальні шари"

Потім можна скористатися вікном SQL і написати свій запит:

введіть тут опис зображення


1
Це правильна відповідь (QGIS 2.14+).
Олександр Нето


-1

Використовуйте конструктор запитів у QGIS, перейдіть до поля імені міста в полях у конструкторі запитів. Перейдіть до значень, додайте всі. Видаліть усі нулі.

Створіть сценарій, аналогічний name city = "london" та name city = "paris", поки у вас не з’явиться повний список імен та запустіть сценарій. Тепер вибрані всі назви міст. Ви можете експортувати вибраний як файл форми та імпортувати в базу даних postgresql.

Для використання резервного пакета postgresql до QGIS встановіть стек postgresql з геосервером, postgresql та базою даних з підтримкою postgis в postgresql. Вам потрібно буде підключити QGIS до сервера. Пограйте трохи, і ви зрозумієте це.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.