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

Практическая работа

Тема: Запросы SQL(2часть)

Цель: Изучение тем:

  1. Агрегатные функции

  2. Формирование выводов запросов

  3. Запрашивание многочисленных таблиц также как одной

Оборудование и/или программное обеспечение:IBM PC, MS Access /OpenOfficedBase.

Теоретическая часть Что такое агрегатные функции?

Запросы могут производить обобщенное групповое значение полей точно также как и значение одного поля. Это делает с помощью агрегатных функций. Агрегатные функции производят одиночное значение для всей группы таблицы. Имеется список этих функций:

  • COUNT

производит номера строк или не-NULL значения полей которые выбрал запрос.

  • SUM

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

  • AVG

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

  • MAX

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

  • MIN

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

Как использовать агрегатные функции?

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

С COUNT, MAX, и MIN, могут использоваться и числовые или символьные поля. Когда они используются с символьными полями, что MIN будет означать первое, а MAX последнее значение в алфавитном порядке.

Чтобы найти SUM всех наших покупок в таблицы Продажы, мы можем ввести следующий запрос, с его выводом в Рисунке 1:

SELECT SUM (amt)

FROM Orders;

Рисунок 1 Выбор суммы

Как видно из рисунка столбец не имеет названия (Expr1000). Для того, чтобы столбец назывался например «Обшая_сумма», то запрос должен иметь вид:

SELECT Sum([amt]) AS Общая_сумма

FROM Orders;

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

SELECT Sum([amt]) AS [Общая сумма]

FROM Orders;

Рисунок 2 Выбор суммы и переименование столбца

Нахождение усредненной суммы - это похожая операция (вывод следующего запроса показывается в Рисунке 2):

SELECT AVG (amt)

FROM Orders;

Рисунок 3 Выбор среднего

Специальные атрибуты count

Функция COUNT несколько отличается от всех. Она считает число значений в данном столбце, или число строк в таблице. Когда она считает значения столбца, она используется с DISTINCT чтобы производить счет чисел различных значений в данном поле. Мы могли бы использовать ее, например, чтобы сосчитать номера продавцов в настоящее время описанных в таблице Продажи:

SELECT Count (snum)

FROM (SELECT DISTINCT snum

FROM Orders)

Рисунок 4 Подсчет значений поля

Нужно отметить, что DISTINCT и COUNT не считает Null значения (т.е. пустые строки).

DISTINCT может использоваться таким образом, с любой функцией агрегата, но наиболее часто он используется с COUNT. С MAX и MIN, это просто не будет иметь никакого эффекта, а SUM и AVG, вы обычно применяете для включения повторяемых значений, так как они законно эффективнее общих и средних значений всех столбцов.

Использование count со строками, а не значениями

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

SELECT COUNT (*)

FROM Customers;

COUNT со звездочкой включает NULL и дубликаты.

Рисунок 5 Подсчет строк вместо значений