Агрегатные функции онлайн урок.


Агрегатные функции - функции которые вычисляют значение группы ячеек таблицы.

К агрегатным функциям относят следующие:

  • MIN(), MAX() - минимальное максимальное значение
  • SUM() - сумма значений
  • AVG() - среднее значение
  • COUNT() - количество значений

Рассмотрим применение агрегатных функций.

Вычисление количества записей в таблице.

SELECT COUNT(*) as students_count FROM student;
+----------------+
| students_count |
+----------------+
| 9 |
+----------------+
1 row in set (0.00 sec)

Тут было вычислено количество записей (9), а также, для сохранения этого значения, был задан псевдоним поля students_count. Если этого не сделать, то поле будет иметь название COUNT(*).

Рассмотрим запрос для получения максимального и минимального значения возраста студентов, а также среднего возраста студентов:

SELECT MIN(age) as min, MAX(age) as max, AVG(age) as avg FROM student;
+------+------+---------+
| min | max | avg |
+------+------+---------+
| 20 | 27 | 23.4444 |
+------+------+---------+
1 row in set (0.01 sec)

В прошлом уроке мы рассматривали образование групп записей при помощи оператора GROUP BY. В каждой группе по определенному полю мы имеем возможность анализировать значения в других полях при помощи агрегатных функций. Например, мы хотели бы узнать средний возраст у студентов с одинаковыми именами, тогда нам необходимо сгруппировать по полю с именем и включить в выборку средние значения по возрасту:

SELECT name, AVG(age) as age_avg FROM student GROUP BY name;
+---------+---------+
| name | age_avg |
+---------+---------+
| Andy | 22.0000 |
| Bob | 23.0000 |
| Jeff | 25.0000 |
| John | 27.0000 |
| Mike | 24.0000 |
| Rita | 21.0000 |
| Stanley | 23.0000 |
+---------+---------+
7 rows in set (0.01 sec)

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

Проверьте свои знания
Таблица country: получить максимальное и минимальное население по странам. Получить среднее население по Европейским странам. Получить общее население всех стран.