русс | укр

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

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

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

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


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

Запрос на выборку с группировкой


Дата добавления: 2013-12-24; просмотров: 1197; Нарушение авторских прав


Команда Group by языка SQL позволяет разбить все записи на группы и для каждой группы записей сформировать одну запись. Таким образом, итоговая таблица будет состоять из сгруппированных записей. Группировка может быть выполнена по одному или нескольким полям. Поскольку таблица, полученная в результате выполнения запроса, будет состоять из сгруппированных записей, для каждого поля, входящего в запрос по которому группировка не выполняется, необходимо указать выражение, которое вычисляется на множестве значений данного поля в группе. В качестве таких выражений используются агрегатные функции.

Функция Sum() возвращает значение суммы для группы записей.

Функция Avg() используется для нахождения среднего значения для записей, входящих в группу.

Функция Count() используется для нахождения количества записей в группе.

Функция Min() используется для нахождения минимального значения.

Функция Max()используется для нахождения максимального значения.

Функции First() и Last() возвращают соответственно значение поля из первой и последней записи группы.

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

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

Where Year (Поставка.ДатаПост)=2003.

Для расчета суммы будет использоваться агрегатная функция Sum():

Sum(Цена*КолТов) as СумПост.

В синтаксической конструкции запроса на выборку с группировкой агрегатные функции выступают в качестве вычисляемых полей. Для определения их имени используется команда As.



С учетом приведенных пояснений можно записать текст запроса:

Select Поставка.КодПост, First(НаимПост) as [Наименование поставщика],

Товар.КодТов, First(НаимТов) as [Наименование товара],

Sum(Цена*КолТов) as СумПост

From Поставщик Inner Join (Поставка Inner Join Товар on

Поставка.КодТов = Товар.КодТов) on

Поставщик.КодПост = Поставка.КодПост

Where Year (Поставка.ДатаПост)=2003

Group by Поставщик.КодПост, Товар.КодТов

В списке полей команды Select для некоторых полей используются агрегатные функции, для других – нет. Агрегатные функции могут не использоваться только для тех полей, по которым выполняется группировка. В данном примере это поля КодПост и КодТов.



<== предыдущая лекция | следующая лекция ==>
Запрос на выборку | Перекрестный запрос


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


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

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

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


 


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

 
 

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

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