русс | укр

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

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

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

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


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

Группировка и групповые вычисления


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


Group by (список полей)

Поля могут задаваться именем или порядковым номером поля в списке выборке.

Семантика. Записи базовой таблицы разбиваются на классы эквивалентности. В один класс – группу, агрегат – попадают записи, значения которых на полях заданного списка равны.

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

Функции, определённые на группах (не записях), называют агрегатными. При использовании опции group by список выборки обязан состоять только из обращений к таким функциям.

К групповым функциям относятся (по определению):

· поля, входящие в список группировки, а также следующие функции:

· count (выражение над полями записи) – количество значений данного выражения в группе;

· count (*) – число записей в группе;

· min (выражение), max (выражение) – соответственно минимальное и максимальное значение заданного выражения для каждой группы; определены для значений произвольного скалярного типа;

· sum (выражение числового типа) – сумма значений по группе

· avg (выражение числового типа) – среднее арифметическое значение по группе.

Примечание. Обращение к агрегатным функциям возможно и без явной группировки, то есть использования опции group by; в этом случае группой считается вся таблица.

Пример. Для каждого покупателя подсчитать количество заказов.

select Cust_Ref , count (Id)

from Orders

group by Cust_Ref;

Не выдаст записи со значением null, то есть покупателей без заказов. В реальности синтаксис практически свободный.

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

Синтаксис: having (условие на группу)

Как правило, сравнение значений агрегатной функции с константой.



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

Пример. Вычислить среднее число покупок казанских покупателей – для достаточно крупных покупателей (то есть тех, у кого больше ста покупок).

select count(order.Id)

from Custoner, Orders

where (customer.Id=orders.Cust_Ref) and (customer.city=’Казань’)

group by Cust_Ref

having count(orders.Id)>100;

 



<== предыдущая лекция | следующая лекция ==>
Выборка из нескольких таблиц | Опции ORDER BY и UNION


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


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

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

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


 


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

 
 

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

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