Среднее арифметическое значений
Функция AVG возвращает среднее арифметическое значение набора числовых значений.
Синтаксические правила
-
< Значимое выражение >
в аргументе должно быть числовым типом данных или приводиться к нему.
Общие правила
-
Тип данных результата:
-
DECIMAL
, если тип аргументовINT
,SMALLINT
,BIGINT
,DECIMAL
; -
DOUBLE
, если тип аргументовREAL
,DOUBLE
.
-
-
Функция применяется к набору значений, полученных из аргумента путем исключения NULL-значений, т.е. записи с NULL-значением не учитываются при подсчете записей.
// среднее значение данных таблицы tst |1 | |2 | |3 | |NULL | |4 | // будет select avg(i) from "tst"; |2.5 |
Примечание
Для учета записей с NULL-значением им надо явно присвоить значение. Например,
select avg(case i when NULL then 0 else i end) from tab1;
или
select avg(nvl(i,0)) from tab1;
-
Если указан
DISTINCT
, дубликаты значений исключаются из подсчета. -
Если функция применяется к пустому набору значений, результат NULL.
Показать пятерку моделей автомобилей, которые предпочитают лица с самой высокой средней зарплатой:
select auto.model, round(avg(person.salary)) as avg_mod from auto,person where auto.personid=person.personid group by auto.model order by avg_mod desc limit 5; MODEL AVG_MOD ----- ------- |CAPRI RS 2600 | 67400| |DINO SPIDER | 58182| |JAVELIN AMX V8 | 57233| |XJ 6 4.2 | 56829| |850 SPORT SPIDER | 56250|