select by attributes

0 голосов
спросил 18 Апр, 06 от Jazz (7,650 баллов) в категории Программные продукты Esri
никто не подскажет как выбрать записи с минимальным значением одного параметра в пределах группы одинаковых значений по другому параметру?
P.S. я понятно сформулировал?

7 Ответы

0 голосов
ответил 18 Апр, 06 от geologic (39,860 баллов)

В практике БД это называется аггрегацией данных. В SQL-нотации ваша задача звучит примерно так:

SELECT MIN(Param1) FROM YourTable GROUP BY (Param2);

В ArcView это эмулировалось операцией Summarize. ArcMap претендует на понимание SQL, вот пусть-ка и докажет... :)

0 голосов
ответил 18 Апр, 06 от Jazz (7,650 баллов)
Да, примерно так, в Mapinfo, применительно к моим данным это пишеться вот так:

Fields {_id_flow, Strahler, Max(Z)}
Tables {shtr_no1_nod}
Where {}
Group {_id_flow}
Order {_id_flow}
Into {Selection}
Browse

где -_id_flow, Strahler, Z названия моих полей

лень просто туда сюда лишний раз слой транслировать...
0 голосов
ответил 19 Апр, 06 от geologic (39,860 баллов)

Но в ArcMap вроде бы SQL-запрос есть... не помню насчет группировок, но не выкинули же они их. Ну а точный синтаксис несложно по месту отладить.

0 голосов
ответил 19 Апр, 06 от Vadim (28,120 баллов)

В ArcMap SQL есть image

Я в синтаксисе не силен, но если я правильно понял задачу, то наскоряк можно попробовать так:

Выбрать все здания, построенные с 1969 по 1975 гг., с нужным значением этажности (в данном случае мы должны посмотреть минимальное значение, пусть - 1 этаж):

[YEAR_] between 1969 and 1975 AND [FLOOR] = '1' либо так

[YEAR_] >= 1969 AND [YEAR_] <= 1975 AND [FLOOR] = '1'

0 голосов
ответил 20 Апр, 06 от Jazz (7,650 баллов)
нет, задачу вы поняли неправильно...

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

я вот тоже в синтаксисе не силён поэтому и спрашиваю, вдруг кто всётаки силён, или это в рамках ArcMap всётаки невозможно?
0 голосов
ответил 21 Апр, 06 от Vadim (28,120 баллов)

Понятно, нужно произвести процедуру агрегирования. Нужно поставить XTools Pro for ArcGis, там эта процедура очень просто делается (Aggregate Features/Records). По поводу синтаксиса можно почитать в хелпе SQL reference

0 голосов
ответил 21 Апр, 06 от Evgen1 (140 баллов)

я так делаю иногда:

Запрос в Access по параметру через конструктор запросов. Выборка по минимальному параметру реализуется через групповые операции, в строке "групповые операции" надо поставить "min". Заодно в табличной форме можно посмотреть какие значения попадут в результат запроса, после чего делаем переход в окно просмотра строки SQL, копируем ее оттуда и вставляем как SQL запрос в ArcMap, правим различия в орфографии - должно работать.

Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...