русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Построение запросов на агрегирование


Дата добавления: 2015-07-09; просмотров: 1754; Нарушение авторских прав


 

Использование баз данных на практике ориентировано, прежде всего, на получение итоговых аналитических и справочных отчетов, которые получаются в результате выполнения специальных SQL-запросов. В языке SQL для получения итоговых значений по столбцам (агрегирование данных по столбцам) применяются специальные функции агрегирования:

Таблица 2.

Функции агрегирования, применяемые в SQL-запросах

Название функции Описание функции агрегирования
COUN Подсчитывает количество строк
SUM Суммирует значение по столбцу
AVG Рассчитывает среднее значение по столбцу
MAX Определяет максимальное значение по столбцу
MIN Определяет минимальное значение по столбцу

 

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

 

SELECT COUNT(*) FROM orders;

 

Результат по запросу, содержащий функцию COUNT() показан на рис. 24 ниже

 

Рис. 24. Результат запроса с функцией агрегирования COUNT().

 

Запрос найти сумму всех выполненных заказов:

 

SELECT SUM(amount) AS Сумма FROM Orders;

 

Рис. 2.6. Результат запроса с функцией агрегирования SUM().

 

Аналогично можно построить запросы и с другими функциями агрегирования MIN(), MAX и т.д. Например:

 

 

SELECT MAX(amount) AS Сумма FROM Orders;

 

 

Замечание: Столбец по которому идет группировка, должен обязательно присутствовать в списке столбцов оператора SELECT.

 

Функции агрегирования можно использовать в запросах совместно с ключевым словом GROUP BY, что позволяет проводить агрегирования по сгруппированным строкам.

 

Например, надо найти сумму всех заказов на каждый день (т.е. сгруппировать заказы по датам и просуммировать данные по каждому дню):



 

SELECT SUM(amount) AS Сумма, odate AS Дата

FROM Orders GROUP BY odate;

 

Результат запроса показан на рис.25 ниже.

 

Рис. 25. Результат запроса с функцией агрегирования SUM() и ключевым словом GROUP BY .

 

Для формирования условий над столбцами, которые используются в функции агрегирования, нельзя использовать ключевое слово WHERE, для этого в языке SQL применяется специальный оператор HAVING. Например, надо найти сумму покупок на каждый день, причем интересны только те дни, в которых сумма превышает 10000:

 

SELECT SUM(amount) AS Сумма, odate AS Дата FROM Orders

GROUP BY odate

HAVING SUM(amount) >10000;

 

В этом запросе столбец amount используется в функции агрегирования SUM(amount), поэтому для формирования условия отбора строк надо применить ключевое слово HAVING. Результат запроса показан на рис.26 ниже. Отобраны только две строки.

 

Рис. 26. Результат запроса с функцией агрегирования SUM() и ключевыми словами GROUP BY и HAVING .

 

Условия над столбцами, которые не входят в группировку формируются с ключевым словом WHERE. Например, если надо найти минимальный заказ на конкретный день, то запрос на SQL запишется так:

 

SELECT snum, MIN(amount) FROM Orders

WHERE odate= #01/03/2006# GROUP BY snum;

 

Здесь столбец odate не охвачен функцией агрегирования. Поэтому к нему можно применить ключевое слово WHERE.

 



<== предыдущая лекция | следующая лекция ==>
Использование в запросах специальных слов | Включение сортировки строк в запросы


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 1.784 сек.