Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MI_UG_7.pdf
Скачиваний:
174
Добавлен:
13.02.2015
Размер:
8.59 Mб
Скачать

Выбор с помощью запросов в MapInfo Professional

WtAvg (выражение): вычисляет взвешенное среднее значение <выражения> для всех записей группы.

Max (выражение): находит наибольшее значение в <выражении> среди всех записей группы.

Min (выражение): находит наименьшее значение в <выражении> среди всех записей группы.

Группирование и упорядочивание данных

Результаты SQL-запроса можно сгруппировать по значениям из некоторой колонки так, что записи, содержащие одинаковые значения в этой колонке, будут объединены вместе. Такую колонку можно определить в поле сгруппировать по колонке диалога "SQL-запрос". При использовании также функций обобщения строки с одинаковыми значениями в группировочных колонках считаются одной группой. Повторяющиеся записи при этом не учитываются, а обобщенные значения выдаются в вычисляемых колонках. Задайте названия колонок или их номер в поле Выбрать колонки. При использовании вычисляемых колонок следует указывать именно их номер.

Кроме того, можно указать MapInfo порядок сортировки результатов запроса. Стандартный порядок – по возрастанию (для строковых полей – по алфавиту). Как и в окошке сгруппировать по колонке, здесь можно указывать название колонки или ее условный номер. Для вычисляемых колонок следует указывать номер. При этом не надо указывать “COL" перед номером колонки.

Объединение таблиц командой SQL-запрос

При выполнении SQL-запросов к нескольким таблицам MapInfo должна объединить данные из разных таблиц. Допустим, имеется таблица, содержащая только графические объекты и их названия, и таблица статистических данных для некоторого региона. Надо показать эти статистические данные на карте. С помощью команды SQL-запрос можно объединить статистические и географические данные в одну таблицу.

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

Рассмотрим таблицу WORLD и таблицу экономической статистики ECO_STATS по всем странам мира. Надо создать временную таблицу запроса, которая объединила бы оба набора данных:

В поле Выбрать колонки: * (напомним, что звездочка означает, что в таблицу запроса надо включить все колонки исходных таблиц)

В поле из таблиц: WORLD, ECO_STATS

В поле с условием: WORLD.Страна = ECO_STATS

270

MapInfo Professional 7.5

Глава 8: Выборки по запросам

Две колонки, с помощью которых Вы сопоставляете записи из разных таблиц, необязательно должны иметь одинаковое название. В качестве примера рассмотрим таблицу иностранных клиентов INT_CUST, содержащую колонку регионов сбыта ("Территория"). В эту колонку записаны названия континентов. Чтобы временно объединить эту таблицу с таблицей стран мира, составьте запрос следующим образом:

В поле Выбрать колонки: *

В поле из таблиц: WORLD, INT_CUST

В поле с условием: WORLD.Континент = INT_CUST.Территория

Пример: Общая численность населения и площадь по континентам

Зная теперь, как MapInfo обобщает данные, мы можем вычислить общую численность населения и общую площадь каждого континента. Мы хотим создать таблицу, содержащую следующую информацию:

Число государств на континенте (в алфавитном порядке)

Общую численность населения по континентам

Общую площадь каждого континента

Чтобы создать таблицу, содержащую всю эту информацию:

1.Откройте таблицу WORLD.TAB и увеличьте его на все окно.

2.Выполните команду ЗАПРОС > SQL-ЗАПРОС. Появится диалог "SQL-запрос". Заполните его следующим образом:

3.В поле из таблиц выберите WORLD из выпадающего списка таблиц.

4.В поле Выбрать колонки выберите "Континент" из выпадающего списка, и выберите Count(*) из выпадающего списка Обобщение.

MapInfo Professional 7.5 Руководство пользователя (Сокращенное)

271

Выбор с помощью запросов в MapInfo Professional

Один раз нажмите пробел и напечатайте псевдоним колонки "Континент". Помните, что псевдоним отделяется от выражения пробелом.

Внимание:Колонка "Континент" Count(*) будет заменена в результирующей таблице на "Страны".

5.Выберите "Sum" из выпадающего списка Обобщение.

6.Выберите "Население" из выпадающего списка Колонки. После выбора колонки "Население" курсор переместится к скобке [)]. Переместите его направо за скобку.

Внимание:Sum("Население") создаст результирующую колонку, в которой будут результаты расчета населения земного шара.

7.Нажмите один раз пробел и введите псевдоним колонки "ОбщНаселение". В результирующей таблице под именем "ОбщНаселение" появится колонка Sum("Население").

8.Выберите "Sum" из выпадающего списка Обобщить.

9.Выберите "Area" из выпадающего списка Функции.

10.После того, как Вы выберите "Area", курсор будет располагаться перед последней скобкой [)]. Переместите его направо за скобку.

Sum(Area) создаст дополнительную колонку, которая будет содержать результат вычисления общей площади.

11.Один раз нажмите пробел и введите псевдоним колонки "ОбщПлошадь".

Внимание:В результирующей таблице появится колонка Sum(Area(obj, “sq mi”)) под именем "ОбщПлошадь".

12.В окошке сгруппировать по колонке выберите "Континент" из выпадающего списка

Колонки.

13.В окошке порядок задать по колонке выберите "Континент" из выпадающего списка Колонки.

14.В окошке и поместить в таблицу введите "Население" в качестве имени для этой таблицы.

15.Функция Count(*) считает все записи в таблице. Таким образом, мы группируем все страны по континентам, MapInfo подсчитывает число стран на каждом контитенте и помещает результат в колонку, названную "Страны" (это псевдоним).

272

MapInfo Professional 7.5

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]