Главная » Информационное обеспечение » Тематические материалы » АИС4 » Вычисления и групповые операции в запросах

Вычисления и групповые операции в запросах

 

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

Вычисляемые поля. В инструкции SELECT в списке отби­раемых полей добавляется выражение, по которому вычисля­ется новое поле, и посредством ключевого слова AS определяется его имя в формируемом наборе данных. На рис. 1 приведен запрос, формирующий ведомость начислений сотрудникам с вычисляемым полем «ИТОГО».

Групповые операции. В процессе отбора и обработки данных важное значение имеют группирование данных по значениям какого-либо поля и осуществление тех или иных операций над сгруппированными записями — razgovorodele.ru. Групповые операции осуществляются на основе SQL-предложения GROUP BY в сочетании со статистическими функциями SQL. В большинстве диалектов языка SQL в состав инструкции SELECT допускается включение статистических функций SQL, которые осуществляют те или иные групповые вычислительные операции над отбираемыми записями.

К числу статистических функций SQL относятся:

SUM(выражение) — вычисляет сумму набора значений;

Рис. 2. Пример запроса на выборку с вычисляемым полем

AVG(выражение) — вычисляет среднее арифметическое набора чисел;

Min(выражение) — вычисляет минимальное значение из набора значений;

Мах(выражение) — вычисляет максимальное значение из набора значений;

StDev(выражение) — вычисляет среднеквадратичное отклонение набора значений;

 

Count(выражение) — вычисляет количество записей, содержащихся в наборе;

Var(выражение) — вычисляет дисперсию по набору значений.

К числу функций, используемых в групповых операциях, относятся также функции First(выражение) и Last(выpaжeниe), вычисляющие (возвращающие), соответственно, первое и последнее значения поля в наборе данных. В выражениях в качестве аргумента допускается использование имен полей таблиц.

Собственно сами групповые вычисления задаются посредством включения в SQL-инструкцию SELECT вычисляемого поля на основе выражения со статистическими функциями, выполняемыми над наборами данных, формируемыми предложением GROUP BY.

Для примера на рис. 3 приведен запрос, формирующий итоговые данные по общей сумме премиальных каждого из премированных сотрудников. Группирование данных производится по полю «ФИО», т. е. все записи с одинаковыми значениями поля «ФИО», объединяются в одну и дополнительно формируется вычисляемое поле «ИТОГО», рассчитываемое как сумма сгруппированных в одну записей по произведению полей «Оклад» и «Премия».

В некоторых СУБД в отдельный вид выделяются запросы по поиску повторов, а также вводится специальная разновидность запросов на выборку в виде так называемых перекрестных запросов.

Запросы по поиску повторов применяются для анализа наличия повторяющихся групп значений по определенному полю и их количественных (статистических — razgovorodele.ru) данных. В качестве примера на рис. 4 приведен запрос по поиску повторов в таблице сотрудники по полю «Должность», формирующий в итоге штатную расстановку по заполненным должностям.

Более сложные статистические задачи решают перекрестные запросы. Название «перекрестный» отражает принцип формирования и представления результатов таких запросов.

На рис. 5 иллюстрируется принцип построения итоговой (сводной) таблицы перекрестного запроса. В исходной (базовой) таблице для перекрестного запроса выбираются два поля. По повторяющимся значениям одного поля формируются названия заголовков строк итоговой (сводной) таблицы — «боковик» сводной таблицы. По повторяющимся значениям другого поля образуются названия столбцов итоговой таблицы — «шапка» сводной таблицы. В ячейках сводной таблицы отражаются результаты статистических функций по группам данных в каких-либо полях исходной таблицы.

Для примера на рис. 6 представлен запрос по формированию статистических данных о количестве исполненных различными сотрудниками документов с разнесением по видам документов. Полем для формирования боковика определено поле «Фамилия», полем для формирования шапки определено поле «Вид документа». На рисунке представлен также вариант SQL-инструкции, реализующей данный запрос.*

* В диалекте SQL MS Access.

Оставить комментарий