Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Суммирование данных с помощью функций агрегирования.
Запросы могут обобщать не только группы значений, но и значения одного поля. Для этого применяются агрегатные функции. Они дают единственное значение для целой группы строк таблицы. Ниже приводится список этих функций: • COUNT определяет количество строк или значений поля, выбранных посредством запроса и не являющихся NULL-значениями; • SUM вычисляет арифметическую сумму всех выбранных значений данного поля; • AVG вычисляет среднее значение для всех выбранных значений данного поля; • МАХ вычисляет наибольшее из всех выбранных значений данного поля; • MIN вычисляет наименьшее из всех выбранных значений данного поля. Функции агрегирования используются как имена полей в предложении запроса SELECT с одним исключением: имена полей применяются как аргументы. Для SUM и AVG могут использоваться только цифровые поля. Для COUNT, MAX и MIN — цифровые и символьные поля. При употреблении с символьными полями МАХ и MIN применяются к ASCII-эквивалентам: MIN предполагает минимальное (первое), а МАХ — максимальное (последнее) значения в соответствии с алфавитным порядком. Чтобы найти сумму (SUM) всех заявок из таблицы Orders, можно ввести следующий запрос: SELECT SUM(amt) FROM Orders;
Специальные атрибуты в COUNT Функция COUNT отличается от предыдущих тем, что подсчитывает количество значений в данном столбце или количество строк в таблице. Когда подсчитываются значения по столбцу, в команде используется DISTINCT для подсчета числа различных значений данного поля. Можно использовать его, например для подсчета количества продавцов, имеющих в настоящее время заказы в лице Orders: SELECT COUNT (DISTINCT snum) FROM Orders; В данном примере DISTINCT вместе со следующим за ним именем поля, к которому он применяется, заключен в круглые скобки и не следует непосредственно за SELECT, как это было ранее. Такая форма применения DISTINCT с COUNT к отдельным столбцам предписывается стандартом ANSI, но многие программы не придерживается этого требования. Указанным способом DISTINCT можно применять с любой функцией агрегирования, но чаще всего он используется с COUNT. Применение его с МAX и MIN бесполезно; а используя SUM и AVG, необходимо включение в выходные данные повторяющихся значений, так как они влияют на сумму и средне значений всех столбцов. Использование COUNT со строками.Для подсчета общего количества строк в таблице следует использовать функцию COUNT со звездочкой вместо имени поля так, как показано в следующем примере. SELECT COUNT (*) FROM Customers; Использование дубликатов в агрегатных функциях. Агрегатные функции могут также (во многих реализациях) иметь аргумент ALL, который размещается перед именем поля, как и DISTINCT, но обозначает противоположное: включить дубликаты. Требования ANSI не допускают подобного для COUNT, но многие реализации игнорируют это ограничение. Различие между ALL и * при использовании COUNT заключается в следующем: ¨ ALL использует имя поля в качестве аргумента; ¨ ALL не подсчитывает NULL-значения. Поскольку * является единственным аргументом, который включает NULL-значения и используется только с COUNT, функции, отличные отCOUNT,игнорируют NULL-значения в любом случае. Следующая команда осуществляет подсчет количества значений поля rating, отличных от NULL-значений, в таблице Customers (включая повторения): SELECT COUNT (ALL rating) FROM Customers; Агрегаты, построенные на скалярных выражениях. До сих пор были использованы агрегатные функции с одним полем в качестве аргумента. Можно использовать агрегатные функции с аргументами, которые состоят из скалярных выражений, включающих одно поле или большее количество полей. (При этом не разрешается применять DISTINCT.) Предположим, таблица Orders содержит дополнительный столбец с величиной предыдущего баланса (blnc) для каждого покупателя. Можно найти текущий баланс, добавив значение поля amount (amt) к значению поля blnc. Можно найти наибольшее значение текущего баланса: SELECT MAX (blnc + amt) FROM Orders; В процессе выполнения этого запроса для каждой строки таблицы выполняется сложение значений двух указанных полей записи и выбирается наибольшее из полученных значений. В SQL можно часто использовать скалярное выражение вместе с полями или вместо них.
Задание В СУБД FoxPro создать базу данных, содержащую несколько связанных по ключевым полям таблиц. Тематика базы данных определяется самостоятельно студентом. На примере созданной базы данных реализовать следующие механизмы языка структурированных запросов: 1. Минимальный набор обязательных элементов оператора SELECT. 2. Использование ключевого слова DISTINCT. 3. Выборка строк по условию, сформированному сочетанием столбцов и констант символьного, числового типа и типа дата с использованием: только реляционных операторов сравнения; булевых операторов сравнения; ключевого слова IN; ключевого слова BETWEEN; ключевого слова LIKE; функций агрегирования: функция COUNT; функция SUM; функция AVG; функция MIN; функция MAX.
Содержание отчета 1. Название лабораторной работы. 2. Цель работы. 3. Структура БД, сформированной в СУБД. 4. Протокол работы оператора SELECT (с использованием всех механизмов, описанных ниже). 5. Вывод. Контрольные вопросы 1. Комбинирование булевых и реляционных операторов для определения условий выборки данных; 2. Механизм устранения избыточности данных; 3. Использование шаблонов для выборки данных; 4. Особенности применения функций агрегирования;
Лабораторные работы №3,4 Построение запросов
Цель работы: получить практические навыки при построении запросов, формировании выходных данных, включая в запросы операции соединения таблиц, вложенные и связанные запросы, группировку выходных данных таблиц БД в среде СУБД Visual FoxPro.
Пояснения к работе |
||
Последнее изменение этой страницы: 2018-05-29; просмотров: 521. stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда... |