Как работает функция AVG в SQL?

Silent

Как вычисляется среднее значение?
Имеется ввиду, что она суммирует значения во всех строках, а потом делит на количество строк? Или как?

Silent

Что-то не получается найти. Там просто везде написано, что она среднее значение выдает, а как именно это среднее значение считается, найти не могу.
Запросы AVG и SUM/COUNT эквивалентны или нет? Когда да, а когда нет?

Realist

Во-вервых, первый прикол со значением NULL. К сожалению, я точно не помню, так что все ниже написано, это AFAIK, IMHO и относится к Ораклу. Как я помню, все агрегатные функции пропускают значения NULL, кроме COUNT. Таким образом если хоть одна строка NULL, формула будет неверна. Функция NVL заменят NULL на что-либо другое и может это фиксить, если надо. Вторая проблема с пустыми наборами. Сумма 0 элементов это ноль. Средее, думаю, тоже. А общее число 0 элементов уже очевидно, что 0. У меня вызывает сомнение верность формулы 0=0/0. Ну возможны еще какие-нить фокусы с точностью/переполнением, но это скорей гипотетически.
Оставить комментарий
Имя или ник:
Комментарий: