Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Фильтрация сгруппированных данных
Данные, сгруппированные конструкцией GROUP BY можно дополнительно отфильтровать. Для этого используется конструкция HAVING < условия отбора>. Условия отбора применяются к уже сформированным группам записей. Правила использования конструкции аналогичны правилам использования конструкции WHERE, и в качестве условий отбора могут использоваться агрегирующие функции, применяемые к отобранным группам записей, либо поля данных по которым проводится группировка. Применение конструкции HAVING Применение аналогично WHERE SELECT Улица, COUNT(*) FROM Здания GROUP BY Улица HAVING Улица Like '%пер.' Группировка всех записей по полю Улица, и вывод значений для групп в которых название улицы заканчивается символами «пер.». Отбор групп SELECT Улица, AVG(Area) FROM Здания GROUP BY Улица HAVING COUNT(*)> 3 Группировка записей по названию улицы, и вывод названий улиц и средних площадей зданий для групп в которых более трех записей. Выборка данных из нескольких слоев Как уже упоминалось выше, в системе Zulu допускается выборка данных из нескольких слоев карты. При этом в результате такой выборки будет выведена таблица с декартовым пересечением запрошенных полей перечисленных слоев. Дополнительные возможности по управлению выборками из нескольких слоев предоставляет конструкция JOIN, располагающаяся в команде выборки после ключевого слоя FROM, но перед ключевыми словами WHERE, GROUP BY, HAVING и ORDER BY. В конструкции задаются условия, по которым объединяются и выводятся поля БД слоев. В системе Zulu предусмотрено несколько вариантов использования данной конструкции, каждый из которых имеет свои особенности и область применения: INNER JOIN (внутреннее соединение) Каждая запись данных первого слоя сопоставляется с каждой записью другого слоя на предмет выполнения условия соединения (например, выполнения условия пространственного соответствия для объектов соединяемых слоев) и выводятся все соответствующие условию записи. Конструкция имеет следующий синтаксис: [ INNER ] JOIN < Слой> ON < Условие>, где < Слой> - слой добавляемый к выборке, а < Условие> - логическое выражение по которому проводится отбор полей. Ключевое слово INNER необязательно и может быть опущено в команде выборки. По результату, конструкция внутреннего соединения аналогична применению условия (с помощью ключевого слова WHERE) к выборке по нескольким слоям.
|