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

Запросы могут производить обобщённое групповое значение полей точно так же, как и значение одного поля. Это делается с помощью агрегатных функций. Агрегатные функции производят одиночное значение для всей группы таблицы.
    Вот список этих функций:
  • COUNT - выдаёт количество строк или не-NULL значений полей, которые выбрал запрос.
    COUNT ({*|[DISTINCT|ALL]expr})
  • SUM - выдаёт арифметическую сумму всех выбранных значений данного поля.
    SUM([DISTINCT|ALL]expr)
  • AVG - выдаёт усреднение всех выбранных значений данного поля.
    AVG([DISTINCT|ALL]expr)
  • MAX - выдаёт наибольшее из всех выбранных значений данного поля.
    MAX([DISTINCT|ALL]expr)
  • MIN - выдаёт наименьшее из всех выбранных значений данного поля.
    MIN([DISTINCT|ALL]expr)
Агрегатные функции могут использоваться как в сочетании с предложением GROUP BY, так и без него.

Примеры:

  • SELECT MAX(employees.salary)
    
    FROM employees
    
    WHERE employees.dep_id_ref=1
    

    Здесь вычисляется максимальная зарплата в отделе с id=1

  • SELECT departments.dep_id, departments.name, AVG(salary)
    
    FROM departments,employees
    
    WHERE departments.dep_id=employees.dep_id_ref
    
    GROUP BY departments.dep_id,departments.name

    Здесь вычисляется средняя зарплата по каждому отделу

  • SELECT COUNT(distinct owner)
    
    FROM tasks

    Здесь вычисляется кол-во человек(без дублей), участвующих в таблице заданий