Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БД SQL.docx
Скачиваний:
5
Добавлен:
27.08.2019
Размер:
2.1 Mб
Скачать

Select Count{*) as ЧислоЗакаЗов from Заказы;

Следующий запрос подсчитывает количество студентов 104 группы.

SELECT Count(Фамилия) AS [Студенты 104] PROM Студенты WHERE группа = 104;

Если в аргументе выражение задано несколько полей, функция Count подсчитывает за­пись только в том случае, если хотя бы одно из полей не содержит значения Null. Если все указанные поля содержат значения Null, запись не подсчитывается. Для разделения имен полей используется символ (&). В следующем примере демонстрируется способ ог­раничения числа записей теми записями, для которых поле «ДатаИсполнения» или поле «СтоимостьДоставки» не содержат пустые значения:

SELECT Count('ДатаИсполнения & СтоимостьДоставки')AS [Not Null] FROM Заказы;

75

Функция SUM

Возвращает сумму набора значений, содержащихся в заданном поле запроса.

Синтаксис

SELECT Sum (выражение) as ....

FROM таблица

[WHERE ...]

Аргумент выражение является строковым выражением, которое определяет поле, содер­жащее добавляемые числовые данные, или выражение, выполняющее вычисления с дан­ными из этого поля. Операнды аргумента выражение могут включать:

  • имя поля таблицы,

  • константу,

  • или функцию.

(Функция может быть внутренней или определяться пользователем, но не может быть другой ста­тистической функцией SQL).

Дополнительные сведения

Функция Sum выполняет суммирование значений в поле. Функция Sum пропускает запи­си с полями, содержащими значения Null.

Следующий запрос подсчитывает итоговую сумму раздаточной ведомости преподавате­лей Экономического факультета.

SELECT Sum([К выплате])AS Итого FROM Ведомость

WHERE Факультет = "ЭФ";

Ведомость

В следующем примере показано, как вычислить сумму произведений полей «Цена» и «Количество»:

SELECT Sum(Цена * Количество)AS [ Доход] FROM Заказано;

76

Функция AVG

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

Синтаксис

SELECT Avg (выражение) as .... FROM таблица

[WHERE ...]

Аргумент выражение является строковым выражением, которое определяет поле, содер­жащее числовые данные для вычисления среднего значения, или выражение, выполняю­щее вычисления с данными из этого поля. Операнды аргумента выражение могут вклю­чать:

  • имя поля таблицы,

  • константу,

  • или функцию.

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

Дополнительные сведения

Среднее значение, вычисленное функцией Avg, является числовым значением (сумма

значений, деленая на их количество).

Функция Avg не включает в вычисления поля со значениями Null.

Следующий запрос определяет средний балл 112 группы.

SELECT AVG([Экзамен])AS [Cp балл] FROM Ведомость

77


WHERE Группа - 112;

Функции MIN, MAX

Возвращают минимальное и максимальное значения из набора значений, содержащихся в

указанном поле запроса.

Синтаксис

SELECT Min (выражение) as .... FROM таблица [WHERE ...]

Аргумент выражение является строковым выражением, которое определяет поле, содер­жащее обрабатываемые данные, или выражение, выполняющее вычисления с данными из этого поля. Операнды аргумента выражение могут включать:

  • имя поля таблицы,

  • константу,

  • или функцию.

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

Дополнительные сведения

Функции Mm и Мах используются для определения наименьшего и наибольшего значе­ний из поля на основе выборки или группировки. Например, можно применить эти функ­ции для возврата наименьшей и наибольшей стоимости доставки. Если не указан способ группировки, используется вся таблица. Следующий запрос определяет максимальную зарплату.

SELECT Маx([К выплате])AS Максимум

FROM Ведомость

WHERE Факультет = "ЭФ";

Фамилия

Факультет

К выплате

ИСАЕВ

ММ

6500

ИСАЧКИН

ЭФ

5000

КАМЕНЕВ

вмк

4800

ИВАННИКОВ

ЭФ

4000

ИВАНОВ

фф

5800

КАРТАШЕВ

ЭФ

5600

КАШОЛКИН

вмк

4500

Максимум 5600

78

Предложение GROUP BY

Объединяет записи с одинаковыми значениями в указанном списке полей в одну запись. Если инструкция SELECT содержит статистическую функцию SQL, например Sum или Count, то для каждой записи будет вычислено итоговое значение.

Синтаксис

SELECT списокПолей FROM таблица [WHERE] условиеОтбора GROUP BY [группируемыеПоля]

Ниже перечислены аргументы инструкции SELECT, содержащей предложение GROUP BY: Элемент Описание

группируемыеПоля

Имена полей (до 10), которые используются для группи­ровки записей. Порядок имен полей в аргументе группируе­мыеПоля определяет уровень группировки для каждого из этих полей.

Дополнительные сведения

Предложение GROUP BY является необязательным.

Итоговые значения не рассчитываются, если инструкция SELECT не содержит статисти­ческой функции SQL.

Значения Null, которые находятся в полях, заданных в предложении GROUP BY, группи­руются и не опускаются. Однако статистические функции SQL не обрабатывают значения Null.

Используйте предложение WHERE для исключения записей из группировки, а предложе­ние HAVING для применения фильтра к записям после группировки.

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

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

SELECT Группа, Count(Гpyппa) as Колич, Avg(Эк) as [Ср б Эк], Avg(Инф)) as [Cp б Инф] into [Итоговая ведомость] from Ведомость GROUP BY Группа; Ведомость Итоговая ведомость

Следующий пример подсчитывает количество студентов в МГУ, обучающихся на каж­дом факультете по курсам обучения.

SELECT Факультет, Курс, Соunt(Фамилия) as Количество

from Ведомость

GROUP BY Факультет, Курс;

Ведомость