Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
!!ЛЕКЦІЇ_від_23.04.2013.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
436.46 Кб
Скачать

Лекція 15. Агрегатні функції в sql

План лекції

  1. Функція Sum

  2. Функції Min, Max

  3. Функції First і Last

  4. Функція Count

  5. Функція «Середнє»

  6. Агрегатні функції.

  1. Агрегатні функції.

Агрегатна функція (дослівно - функція складеного значення) — функція, яка повертає одинарне значення з колекції вхідних значень такої як множина, мультимножина або список . Серед набільш поширених агрегатних функцій такі:

* AVG() - Повертає середнє значення

* COUNT() - Повертає кількість рядків

* FIRST() - Повертає перше значення

* LAST() - Повертає останнє значення

* MAX() - Повертає найбільше значення

* MIN() - Повертає найменше значення

* SUM() - Повертає суму

В SQL агрегатні функції повертають одинарне значення, обчислене зі значень в стовпці. Використовуючи агрегатні функції SQL, можна обчислювати різноманітну статистику для наборів значень. Можна використовувати ці функції у запиті та агрегованих виразах у властивостях SQL об'єкта визначення запиту або під час створення об'єкта набору записів на основі запиту SQL.

  1. Функція «Середнє»

Обчислює середнє арифметичне набору значень, який міститься у зазначеному полі запиту.

Синтаксис: Avg(вираз)

Покажчик місця заповнення Вираз представляє рядковий вираз, який визначає поле з числовими даними для обчислення середнього або вираз, який виконує обчислення, використовуючи дані цього поля. Операнди у виразі можуть містити ім'я поля таблиці, константу або функцію (яка може бути вбудованою або визначеною користувачем, але не однією з інших агрегатних функцій SQL).

Обчислене за допомогою функції Avg середнє є середнім арифметичним (сумою значень, поділеною на кількість значень). Функцію Avg можна використати, наприклад, для обчислення середньої суми транспортних витрат.

Функція Avg не містить жодних полів Null у обчисленні.

Функцію Avg можна використати у виразі запиту та у властивостях SQL об'єкта визначення запиту або під час створення об'єкта набору записів на основі SQL-запиту.

  1. Функція Count

Обчислює кількість записів, повернутих у результаті запиту.

Синтаксис: Count(вираз)

Покажчик місця заповнення виразу представляє рядковий вираз, який визначає поле з даними для обчислення, або вираз, який виконує обчислення, використовуючи дані цього поля. Операнди у виразі можуть містити ім’я поля таблиці або функції (яка може бути вбудованою або визначеною користувачем, але не іншою агрегатною SQL-функцією). Можна обчислювати будь-який тип даних, включно з текстом.

Функцію Count можна використати для обчислення кількості записів у базовому запиті. Наприклад, можна використати функцію Count для обчислення кількості замовлень, доставлених до певної країни.

Хоча вираз може виконати обчислення в полі, функція Count просто підраховує кількість записів. Не має значення, які значення зберігаються в записах.

Функція Count не обчислює записи, які містять поля зі значенням Null , якщо вираз не є символом узагальнення зірочки (*). Якщо використовується зірочка (*), функція Count обчислює загальну кількість записів, включно з тими, які містять поля зі значенням Null. Функція Count(*) працює значно швидше, ніж функція Count([Column Name]). Не слід брати зірочку в лапки (' '). Наведений нижче приклад обчислює кількість записів у таблиці замовлень «Orders»:

SELECT Count(*) AS TotalOrders FROM Orders;

Якщо вираз визначає кілька полів, функція Count обчислює запис, лише якщо принаймні одне з полів не містить значення Null. Якщо всі визначені поля містять значення Null, запис не обчислюється. Імена полів слід розділяти амперсандом (&). Наведений нижче приклад показує, як можна обмежити обчислення записами, в яких поля «ShippedDate» або «Freight» не містять значення Null:

SELECT Count('ShippedDate & Freight') AS [Not Null] FROM Orders;

Функцію Count можна використати у виразі запиту. Можна також використати цей вираз у властивості SQL об'єкта QueryDef або під час створення об'єкта Recordset на основі SQL-запиту.