Функция AVG в SQL используется, чтобы выяснить средне-арифметическое значение в различных записях.
Чтобы понять функцию AVG, рассмотрим таблицу EMPLOYEE_TBL, в которой находятся следующие записи:
SQL> SELECT * FROM employee_tbl; +----+----------+------------+--------------------+ | id | name | work_date | daily_typing_book | +----+----------+------------+--------------------+ | 1 | Dima | 2017-02-01 | 250 | | 2 | Ruslan | 2017-03-02 | 220 | | 3 | AndreyEx | 2017-01-11 | 170 | | 3 | AndreyEx | 2017-02-02 | 100 | | 4 | Masha | 2017-03-12 | 220 | | 5 | Roma | 2017-06-23 | 300 | | 5 | Roma | 2017-03-12 | 350 | +----+----------+------------+--------------------+ 7 rows in set (0.00 sec)
Теперь предположим, что на основе приведенной выше таблице вы хотите вычислить среднее значение всех dialy_typing_book, то вы можете сделать это с помощью следующей команды:
SQL> SELECT AVG(daily_typing_pages) -> FROM employee_tbl; +-------------------------+ | AVG(daily_typing_pages) | +-------------------------+ | 230.0000 | +-------------------------+ 1 row in set (0.03 sec)
Вы можете взять среднее значение различных записей, установленных с помощью предложения GROUP BY. Следующий пример покажет среднеарифметическое значение всех записи, относящиеся к одному человеку:
SQL> SELECT name, AVG(daily_typing_pages) -> FROM employee_tbl GROUP BY name; +----+----------+-------------------------+ | id | name | AVG(daily_typing_book) | +----+----------+-------------------------+ | 3 | AndreyEx | 135.0000 | | 4 | Masha | 220.0000 | | 1 | Dima | 250.0000 | | 2 | Ruslan | 220.0000 | | 5 | Roma | 325.0000 | +----+----------+-------------------------+ 5 rows in set (0.20 sec)