русс | укр

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

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

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

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


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

Агрегирование и групповые функции. Упорядочение выходных полей.


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


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

select-запроса агрегирующих операций исп. следующие ключевые слова:

count определяет количество строк или значений поля, выбранных посредством запроса и не являющихся их значениями.

avg вычисляет среднее значение для всех выбранных значений данного поля.

sum вычисляет арифметическую сумму всех выбранных значений поля.

max вычисляет наибольшее из всех выбранных значений поле

min - соотв., наименьшее

В select-запросе агрегирующие функции используются аналогично именам полей, при этом имена полей используются в качестве аргументов этих функций.

Пример: среднее значение поля mark по всем записям таблицы exam_mark

select avg(mark)

From exam_mark;

Постчитать кол-во строк в exam_mark:

Select count(*)

From exam_mark;

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

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

Пример: найти максимальное значение оценки, полученной в результате экзаменов каждым студентом

Select student_id, max(mark)

From exam_mark

Group by student_id;

Select student_id, subj_id, max(mark)

From exam_mark

Group by student_id, subj_id;

Предложение Group by не только устанавливает столбцы, по которым осуществляется группирование, но и указывает порядок разбиения столбцов на группы.

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



Пример:

select subj_name, max(hour)

From subject

Group by subj_name

Having max(hour)>=72;

Замечание: в условии, задаваемом предложением having, указываются только поля или выражения, которые на выходе имеют единственное значение для каждой выводимой группы.

Записи в реляционной БД неупорядоченные, однако, это можно сделать в результате выполнения запроса. Для этого используется оператор order by, который позволяет упорядочивать выводимые записи в соответствии со значении одного или нескольких выбранных столбцов.

При этом можно задать возрастающую asc или убывающую desc последовательность сортировки.

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

Select *

From subject

Order by subj_name;

Упорядочить выводимый список предметов обучения по значениям семестра, а внутри семестра - по наименованию предмета.

Select *

From subject

Order by semester, subj_name;

Предложение order by может быть использовано для упорядочивания групп записи. При этом оператор order by в запросе всегда должен быть последним.

Select semester, subj_name, max(hour)

From subject

Group by semester, subj_name

Order by semester;

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

Пример: упорядочить данные по полю semester

Select semester, subj_id

From subject

Order by 1 desc;

Если в поле, которое использ. для упорядочивания, есть null, то все они размещ. в конце или в начале.

 



<== предыдущая лекция | следующая лекция ==>
Простейшие SELECT-запросы. Синтаксис. | Вложенные подзапросы. Использование оператора exists.


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


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

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

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


 


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

 
 

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

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