<<На Главную     <В меню Советы по MapInfo

Иногда, в качестве тестового задания по знанию возможностей MapInfo предлагают решение следующей , без всякого сомнения, стандартной ситуации - Как из списка выбрать повторяющиеся записи с числом повторений больше N ? Уметь отвечать на такой вопрос полезно во всех отношениях, даже если вы не собираетесь проходить никакого собеседования, поскольку решение такой задачки поможет вам уметь избавляться от дублирующих записей, или скажем, находить наиболее часто повторяющиеся записи.

 

  

 

Короче, в качестве примера, попробуем ответить на такой чисто познавательный вопрос - Какие названия населенных пунктов являются наиболее часто встречающимися? Информация о названии нас. пунктов содержится в поле Name нашей учебной таблицы nasp:

 

 

Далее идем меню Запрос>SQL -запрос и составим такое выражение:

 

 

 

Это будет наш первый запрос Query1.

 

Прим. К сожалению, в рамках MapInfo поставленная задача за один проход (в рамках одного запроса) не решается - здесь отсутствует оператор типа having Count(*) > 1, который существует , например в языке T-SQL (можно посмотреть здесь).

 

 

Однако, продолжим ... Создаем второй запрос, в котором будем использовать результаты  Query1 :

 

Запрос Определить количество повторов MapInfo

В приведенном на форме слева запросе выведем в результирующий список наименования нас. пунктов, встречающиеся более 3-х раз. Сортировать результаты будем по первому полю в порядке возрастания по алфавиту - предложение 1 asc в поле Сортировать по .

Условие запроса для нашего примера будет таким: name in (Select name from query1 where col2 > 3)

 

Результат будет выглядеть сл. образом - как и следовало ожидать, наиболее 'популярными'  являются названия Александровка, Каменка, Поповка , Березовка и пр. :

 

 

 

В заключении необходимо отметить, что рассмотренная тактика составления последовательности (цепочки) запросов, является полезным приемом в случае необходимости получить нетривиальный cрез информации из списков MapInfo. Мысль тут довольно простая - решение сложной задачи всегда можно достичь, разложив её на более простые (элементарные) составляющие.

 

Мндаа ...  Диалектика,  однако - от просто к сложному :-)   За сим разрешите откланяться ...

Simashkov.2015

04.05.2015 г.

Назад