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