Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОБД З Савчук ТО.doc
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
14 Мб
Скачать
☆

6 Узагальнювальні функції та їх синтаксис

Узагальнювальні функції використовуються для одержання загальних значень. Їх можна застосовувати до наборів (set) рядків:

  • до всіх рядків таблиці;

  • до рядків, визначених у реченні WHERE;

  • до груп рядків у реченні GROUP BY.

У будь-якому випадку, незалежно від структури набору рядків, для кожного з них виходить єдине значення.

Забороняється змішувати в одному реченні звичайні значення і значення узагальнювальних функцій. Таким чином, список вибору може бути:

  • порожнім;

  • складатися з імен стовпців і виразів (які обробляють значення рядків);

  • включати тільки узагальнювальні функції (що застосовуються до наборів значень).

Єдиним винятком є речення GROUP BY.

Узагальнювальні функції (таблиця 4.6) завжди мають аргументи (argument). Аргументи є виразами і беруться в дужки.

Загальний синтаксис узагальнювальної функції має такий вигляд:

AGGREGATE_FUNCTION ([DISTINCT] вираз)

Таблиця 4.6 – Список узагальнювальних функцій

Узагальнювальна функція

Результат

SUM ([DISTINCT]) вираз)

Сума (різних) значень

AVG ( [DISTINCT] вираз)

Середня величина (різних) значень

COUNT([DISTINCT] вираз)

Кількість (різних) ненульових значень

COUNT(*)

Кількість обраних рядків

МАХ (вираз)

Максимальне значення

МІN (вираз)

Мінімальне значення

З всіма узагальнювальними функціями, крім COUNT(*), можна використовувати ключове слово DISTINCT.

Функція COUNT як аргумент використовує стовпець чи вираз і підраховує загальну кількість його визначених значень.

Функція COUNT(*) знаходить загальну кількість рядків, незалежно від наявності в них невизначених значень.

Спільне використання цих функцій може бути корисним при підрахунку невизначених значень у заданих стовпцях.

При використанні стовпця без невизначених значень результати роботи функцій COUNT і СОUNT(*) будуть однакові.

Функції SUM і AVG можна застосовувати тільки до числових стовпців.

Функції MIN, MAX, COUNT і COUNT(*) працюють із усіма типами даних.

З функціями SUM, AVG, COUNT, MIN, MAX можна використовувати ключове слово DISTINCT (воно знаходиться перед аргументом). При цьому DISTINCT не впливає на результати виконання функцій MAX і MIN.

При використанні ключового слова DISTINCT при обчисленні суми, середнього значення чи загальної кількості значень не враховуються повторювані рядки. У деяких системах при використанні ключового слова DISTINCT аргумент не може бути арифметичним виразом, а повинен бути іменем стовпця. DISTINCT також не застосовується разом з функцією COUNT(*), тому що вона завжди повертає єдиний рядок. Як правило, ключове слово DISTINCT у списку вибору можна використовувати тільки один раз. При відсутності узагальнювальних функцій, DISTINCT застосовується до всього списку вибору, а не до окремих стовпців. Однак це обмеження може призвести до виникнення проблем при використанні узагальнювальних функцій.

Узагальнювальні функції не можна використовувати в реченні WHERE, це приведе до одержання повідомлення про помилку. Однак речення WHERE можна використовувати для обмеження числа рядків, що беруть участь в обчисленнях.

Узагальнювальні функції можна використовувати в списку вибору, або в реченні HAVING оператора SELECT.

Якщо в стовпці, до якого застосовується узагальнювальна функція, є невизначені (NULL) значення, вони просто ігноруються.

Винятком є функція COUNT(*), що завжди підраховує загальну кількість рядків, незалежно від наявності в них невизначених значень.

Якщо умови запиту не задовольняють жодний рядок, функція COUNT повертає значення нуль. Всі інші функції в цьому випадку повертають значення NULL.