Смекни!
smekni.com

MapInfo Professional 90 Руководство пользователя (стр. 72 из 125)

• Примеры запросов с группировкой по колонкам

• Пример - использование окошка "сгруппировать по колонкам" в SQL-запросе

• Пример - использование окошка "порядок определить по колонке" в SQL-запросе

Сохранение запросов

После завершения составления запроса или SQL-запроса результаты можно хранить в таблице запросов MapInfo Professional. Таблица запросов состоит из TAB-файла и связанного с ним QRY-файла. После выполнения любой из команд Выбрать или SQL-запрос, выполните команду Сохранить Запрос в меню Файл. Когда Вы в следующий раз обратитесь к этой таблице, откроются все таблицы, которые участвуют в запросе, а сам запрос будет повторно выполнен.

Внимание: Запросы, сделанные к запросам, не могут сохраняться как таблицы или в Рабочих Наборах.

Сохранение запросов в Рабочем Наборе

Вы также можете сохранять запросы в Рабочих Наборах. Когда открывается Рабочий Набор, содержащий запрос, то запрос автоматически будет выполняться, и откроются все окна, созданные при этом запросе. В отличие от сохранения запроса в виде таблицы, отдельный TAB- файл при сохранении запроса в Рабочем Наборе создан не будет.

Внимание: Для сохранения запросов в Рабочих Наборах необходимо установить флажок Сохранять запросы в Рабочем Наборе в диалоге Стартовые режимы (Настройки > Режимы > Стартовые). По умолчанию флажок установлен.

Включение режима сохранения запросов при использовании Рабочих наборов

Чтобы включить режим Сохранять запросы при использовании Рабочих наборов нужно установить флажок Сохранять запросы в Рабочем наборе диалога Стартовые режимы.

1. Выполните команду Настройки > Режимы > Стартовые. Появится диалог Стартовые режимы.

2. Установите флажок Сохранять запросы в Рабочем наборе (по умолчанию уже установлен).

3. Нажмите OK.

Если этот режим был включен, то при открытии Рабочего набора запросы, сохранённые в нем, будут восстановлены. Отдельный файл таблицы MapInfo Professional (.tab) для запросов создан не будет.

Внимание: Только запросы, созданные командами SQL-запрос или Выбрать сохраняются в Рабочем наборе.

Шаблоны запросов

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

Загрузка шаблона

Можно загружать любой сохраненный шаблон запроса.

Для загрузки шаблона:

1. В диалоге Выбрать или SQL-запрос нажмите кнопку Загрузить. Откроется диалог Загрузить запрос из файла, в котором предлагается выбрать файл с расширением QRY.

2. Выберите нужный файл и нажмите кнопку Открыть. Откроется диалог SQL-запрос или Выбрать, в котором будут введены параметры, используемые в этом шаблоне запроса. Выполните запрос для создания таблицы запроса.

Выбор с помощью запросов в MapInfo Professional Переименование шаблона

Выберите шаблон и введите его новое имя (не более 64 символов).

Сохранение шаблонов

Составив запрос или SQL-запрос, нажмите кнопку Сохранить, чтобы сохранить запрос в виде шаблона.

Чтобы сохранить запрос в виде шаблона:

1. После завершения составления выборки или SQL-запроса нажмите кнопку Сохранить. Откроется диалог Сохранить запрос в файле.

2. Задайте имя файлу запроса, укажите каталог и нажмите кнопку Сохранить. Файлы запросов сохраняются с расширением QRY и размещаются в каталоге, определенном в Настройках (Настройки > Режимы > Каталоги).

Внимание: Для сохранения запроса в шаблоне не надо проверять синтаксис или логическую завершенность самого запроса.

Удаление шаблона

Чтобы удалить шаблон:

• выберите шаблон по имени и нажмите клавишу DEL. Появится диалог отмены/подтверждения удаления выбранного шаблона. Если шаблонов данного типа не существует, то появится кнопка для восстановления шаблона по умолчанию.

Вычисляемые колонки

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

Можно создавать вычисляемые колонки, используя функции обобщения count, sum, avg, wtavg, max и min. Например:

• sum(Population)

будет содержать в результате население всего земного шара.

• sum(Area(obj), "sq km") вычислит площадь всего земного шара.

Создание псевдонимов колонок

При создании вычисляемой колонки MapInfo Professional использует определенное выражение в качестве названия колонки. Оно может быть неудобочитаемым. Вы можете задать псевдоним - свое название колонки. Например, колонка плотности населения в окне Списка из предыдущего примера будет иметь название:

• Population / Area(obj, "sq km")

Мы можем дать этой колонке более содержательное название.

Чтобы переименовать колонку, добавьте свое название в поле Выбрать колонки. Это название должно следовать сразу после вычисляемого выражения, отделяться от него пробелом и быть заключено в двойные кавычки. Например:

• Country, Population / Area(obj, "sq km") "ПЛ_НАСЕЛЕНИЯ"

При создании временной таблицы запроса MapInfo Professional назовет колонку плотности населения "ПЛ_НАСЕЛЕНИЯ".

Псевдонимы можно задавать не только для вычисляемых колонок. Например, если каждая страна рассматривается как отдельный регион сбыта, можно переименовать колонку Country в ТЕРРИТОРИЯ. Этот процесс аналогичен процессу создания вычисляемой колонки:

• Country "ТЕРРИТОРИЯ", Population / Area(obj, "sq km") "ПЛ_НАСЕЛЕНИЯ"

Ещё один пример — плотность насления во всем мире в Справке.

Обобщение данных

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

MapInfo Professional найдет все уникальные наборы данных в заданной колонке или нескольких колонках и создаст единственную запись для каждого уникального набора. При обобщении данных надо указать:

• как группировать записи;

• как обобщать данные.

Например, пусть имеется таблица торговых агентов и сумм продаж за три месяца:

ТОРГ_ПРЕД МЕСЯЦ ПРОДАЖИ
Иван Май 1200
Катя Май 900
Петр Май 1100
Иван Июнь 900
ТОРГ_ПРЕД МЕСЯЦ ПРОДАЖИ
Катя Июнь 1400
Петр Июнь 600
Иван Июль 1200
Катя Июль 700
Петр Июль 1000

MapInfo Professional может вычислить общий объем продаж, сделанных каждым из агентов, если в диалоге SQL-запрос указать:

• в поле Выбрать колонки: ТОРГ_ПРЕД, sum(ПРОДАЖИ);

• в поле Сгруппировать по колонке: ТОРГ_ПРЕД

ТОРГ_ПРЕД sum(ПРОДАЖИ)
Иван 3300
Катя 3000
Петр 2700

Теперь подсчитаем общий объем продаж за каждый месяц:

• в поле Выбрать колонки: ТОРГ_ПРЕД, ауд(ПРОДАЖИ);

• в поле Сгруппировать по колонке: ТОРГ_ПРЕД

ТОРГ_ПРЕД avg(SALES)
Иван 1100
Катя 1000
Петр 900

MapInfo Professional может рассчитать суммарные продажи по месяцам:

• в поле Выбрать колонки: МЕСЯЦ, sum(ПРОДАЖИ);

• в поле Сгруппировать по колонке: МЕСЯЦ

МЕСЯЦ sum(ПРОДАЖИ)
Май 3200
Июнь 2900
Июль 2900

В MapInfo Professional имеется шесть функций обобщения:

• Count(*): подсчитывает число записей в группе. В качестве ее аргумента указывается *, так как она применима ко всем записям, а не к какому-то отдельному полю записи.

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

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

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

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

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

Дополнительную информацию о группировании и сортировке читайте в Справочной системе.

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

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