Как в excel посчитать медиану

Медиана в EXCEL

Для вычисления медианы в MS EXCEL существует специальная функция МЕДИАНА() . В этой статье дадим определение медианы и научимся вычислять ее для выборки и для заданного закона распределения случайной величины.

Начнем с медианы для выборок (т.е. для фиксированного набора значений).

Медиана выборки

Медиана (median) – это число, которое является серединой множества чисел: половина чисел множества больше, чем медиана , а половина чисел меньше, чем медиана .

Для вычисления медианы необходимо сначала отсортировать множество чисел (значения в выборке ). Например, медианой для выборки (2; 3; 3; 4 ; 5; 7; 10) будет 4. Т.к. всего в выборке 7 значений, три из них меньше, чем 4 (т.е. 2; 3; 3), а три значения больше (т.е. 5; 7; 10).

Если множество содержит четное количество чисел, то вычисляется среднее для двух чисел, находящихся в середине множества. Например, медианой для выборки (2; 3; 3 ; 6 ; 7; 10) будет 4,5, т.к. (3+6)/2=4,5.

Для определения медианы в MS EXCEL существует одноименная функция МЕДИАНА() , английский вариант MEDIAN().

Медиана не обязательно совпадает со средним значением (mean, average) в выборке . Совпадение имеет место только в том случае, если значения в выборке распределены симметрично относительно среднего . Например, для выборки (1; 2; 3 ; 4 ; 5; 6) медиана и среднее равны 3,5.

Чтобы в этом убедиться – построим гистограмму для симметричной выборки, состоящую из 36 значений, и вычислим среднее и медиану (см. файл примера лист Медиана-выборка ).

В чем же ценность медианы ? Почему ее используют зачастую наравне со средним значением ?

Оба параметра используются для определения «центральной тенденции» выборки . Для выборки с несимметричным распределением, медиана будет отличаться от среднего . Например, для (1; 2; 3 ; 4 ; 5; 600) медиана равна 3,5, а вот среднее равно 103,5 (смещено в сторону б о льшего значения).

То есть, если имеется длинный хвост распределения, то медиана лучше, чем среднее значение, отражает «типичное» или «центральное» значение. Например, рассмотрим пример несправедливого распределения зарплат в компании, в которой руководство получает существенно больше, чем основная масса сотрудников (также см. статью Описательная статистика , раздел Медиана ).

Очевидно, что средняя зарплата (71 тыс. руб.) не отражает тот факт, что 86% сотрудников получает не более 30 тыс. руб. (т.е. 86% сотрудников получает зарплату в более, чем в 2 раза меньше средней!). В то же время медиана (15 тыс. руб.) показывает, что как минимум у половины сотрудников зарплата меньше или равна 15 тыс. руб.

Примечание : Так как медиана является 50-й процентилью и 2-й квартилью , ее также можно вычислить с помощью формул =ПРОЦЕНТИЛЬ.ВКЛ( Выборка;0,5 ) и =КВАРТИЛЬ.ВКЛ( Выборка;2 ) , где Выборка – это ссылка на диапазон, содержащий значения выборки.

Если выборка содержит нечетное количество чисел, то для вычисления медианы можно также воспользоваться формулой: НАИБОЛЬШИЙ(Выборка;СЧЁТ(Выборка)/2) .

Медиана непрерывного распределения

Если Функция распределения F (х) случайной величины х непрерывна, то медиана является решением уравнения F(х) =0,5.

Если известна Функция распределения F(х) или функция плотности вероятности p (х) , то медиану можно найти из уравнения:

Например, решив аналитическим способом это уравнение для Логнормального распределения lnN(μ; σ 2 ), получим, что медиана вычисляется по формуле =EXP(μ). При μ=0, медиана равна 1.

Обратите внимание на точку Функции распределения , для которой F (х)=0,5 (см. картинку выше) . Абсцисса этой точкиравна1. Это и есть значение медианы, что естественно совпадает с ранее вычисленным значением по формуле em.

В MS EXCEL медиану для логнормального распределения LnN(0;1) можно вычислить по формуле =ЛОГНОРМ.ОБР(0,5;0;1) .

Примечание : Напомним, что интеграл от функции плотности вероятности по всей области задания случайной величины равен единице.

Поэтому, линия медианы (х=Медиана) делит площадь под графиком функции плотности вероятности на две равные части.

Примечание : В статье о распределениях MS EXCEL приведены ссылки на распределения для которых в MS EXCEL существуют специальные функции ( нормальное распределение , гамма-распределение , Экспоненциальное и др.). Используя эти функции можно вычислить медиану соответствующего распределения.

Источник: excel2.ru

Медиана в статистике

Центральную тенденцию данных можно рассматривать не только, как значение с нулевым суммарным отклонением (среднее арифметическое) или максимальную частоту (мода), но и как некоторую отметку (значение в совокупности), делящую ранжированные данные (отсортированные по возрастанию или убыванию) на две равные части. Половина исходных данных меньше этой отметки, а половина – больше. Это и есть медиана.

Итак, медиана в статистике – это уровень показателя, который делит набор данных на две равные половины. Значения в одной половине меньше, а в другой больше медианы. В качестве примера обратимся к набору нормально распределенных случайных чисел.

Очевидно, что при симметричном распределении середина, делящая совокупность пополам, будет находиться в самом центре – там же, где средняя арифметическая (и мода). Это, так сказать, идеальная ситуация, когда мода, медиана и средняя арифметическая совпадают и все их свойства приходятся на одну точку – максимальная частота, деление пополам, нулевая сумма отклонений – все в одном месте. Однако, жизнь не так симметрична, как нормальное распределение.

Допустим, мы имеем дело с техническими замерами отклонений от ожидаемой величины чего-нибудь (содержания элементов, расстояния, уровня, массы и т.д. и т.п.). Если все ОК, то отклонения, скорее всего, будут распределены по закону, близкому к нормальному, примерно, как на рисунке выше. Но если в процессе присутствует важный и неконтролируемый фактор, то могут появиться аномальные значения, которые в значительной мере повлияют на среднюю арифметическую, но при этом почти не затронут медиану.

Медиана выборки – это альтернатива средней арифметической, т.к. она устойчива к аномальным отклонениям (выбросам).

Математическим свойством медианы является то, что сумма абсолютных (по модулю) отклонений от медианного значения дает минимально возможное значение, если сравнивать с отклонениями от любой другой величины. Даже меньше, чем от средней арифметической, о как! Данный факт находит свое применение, например, при решении транспортных задач, когда нужно рассчитать место строительства объектов около дороги таким образом, чтобы суммарная длина рейсов до него из разных мест была минимальной (остановки, заправки, склады и т.д. и т.п.).

Формула медианы

Формула медианы в статистике для дискретных данных чем-то напоминает формулу моды. А именно тем, что формулы как таковой нет. Медианное значение выбирают из имеющихся данных и только, если это невозможно, проводят несложный расчет.

Читайте также:  Excel нумерация по порядку

Первым делом данные ранжируют (сортируют по убыванию). Далее есть два варианта. Если количество значений нечетно, то медиана будет соответствовать центральному значению ряда, номер которого можно определить по формуле:

Me – номер значения, соответствующего медиане,

N – количество значений в совокупности данных.

Тогда медиана обозначается, как

Это первый вариант, когда в данных есть одно центральное значение. Второй вариант наступает тогда, когда количество данных четно, то есть вместо одного есть два центральных значения. Выход прост: берется средняя арифметическая из двух центральных значений:

В интервальных данных выбрать конкретное значение не представляется возможным. Медиану рассчитывают по определенному правилу.

Для начала (после ранжирования данных) находят медианный интервал. Это такой интервал, через который проходит искомое медианное значение. Определяется с помощью накопленной доли ранжированных интервалов. Где накопленная доля впервые перевалила через 50% всех значений, там и медианный интервал.

Не знаю, кто придумал формулу медианы, но исходили явно из того предположения, что распределение данных внутри медианного интервала равномерное (т.е. 30% ширины интервала – это 30% значений, 80% ширины – 80% значений и т.д.). Отсюда, зная количество значений от начала медианного интервала до 50% всех значений совокупности (разница между половиной количества всех значений и накопленной частотой предмедианного интервала), можно найти, какую долю они занимают во всем медианном интервале. Вот эта доля аккурат переносится на ширину медианного интервала, указывая на конкретное значение, именуемое впоследствии медианой.

Обратимся к наглядной схеме.

Немного громоздко получилось, но теперь, надеюсь, все наглядно и понятно. Чтобы при расчете каждый раз не рисовать такой график, можно воспользоваться готовой формулой. Формула медианы имеет следующий вид:

где xMe — нижняя граница медианного интервала;

iMe — ширина медианного интервала;

∑f/2 — количество всех значений, деленное на 2 (два);

S(Me-1)— суммарное количество наблюдений, которое было накоплено до начала медианного интервала, т.е. накопленная частота предмедианного интервала;

fMe — число наблюдений в медианном интервале.

Как нетрудно заметить, формула медианы состоит из двух слагаемых: 1 – значение начала медианного интервала и 2 – та самая часть, которая пропорциональна недостающей накопленной доли до 50%.

Для примера рассчитаем медиану по следующим данным.

Требуется найти медианную цену, то есть ту цену, дешевле и дороже которой по половине количества товаров. Для начала произведем вспомогательные расчеты накопленной частоты, накопленной доли, общего количества товаров.

По последней колонке «Накопленная доля» определяем медианный интервал – 300-400 руб (накопленная доля впервые более 50%). Ширина интервала – 100 руб. Теперь остается подставить данные в приведенную выше формулу и рассчитать медиану.

То есть у одной половины товаров цена ниже, чем 350 руб., у другой половины – выше. Все просто. Средняя арифметическая, рассчитанная по этим же данным, равна 355 руб. Отличие не значительное, но оно есть.

Расчет медианы в Excel

Медиану для числовых данных легко найти, используя функцию Excel, которая так и называется — МЕДИАНА. Другое дело интервальные данные. Соответствующей функции в Excel нет. Поэтому нужно задействовать приведенную выше формулу. Что поделаешь? Но это не очень трагично, так как расчет медианы по интервальным данным – редкий случай. Можно и на калькуляторе разок посчитать.

Напоследок предлагаю задачку. Имеется набор данных. 15, 5, 20, 5, 10. Каково среднее значение? Четыре варианта:

Мода, медиана и среднее значение выборки – это разный способ определить центральную тенденцию в выборке.

Ниже видеоролик о том, как рассчитать медиану в Excel.


Источник: statanaliz.info

Функция МЕДИАНА в Excel для выполнения статистического анализа

Функция МЕДИАНА в Excel используется для анализа диапазона числовых значений и возвращает число, которое является серединой исследуемого множества (медианой). То есть, данная функция условно разделяет множество чисел на два подмножества, первое из которых содержит числа меньше медианы, а второе – больше. Медиана является одним из нескольких методов определения центральной тенденции исследуемого диапазона.

Примеры использования функции МЕДИАНА в Excel

Пример 1. При исследовании возрастных групп студентов использовались данные случайно выбранной группы учащихся в ВУЗе. Задача – определить срединный возраст студентов.

Формула для расчета:

  • B3:B15 – диапазон исследуемых возрастов.

То есть в группе есть студенты, возраст которых меньше 21 года и больше этого значения.

Сравнение функций МЕДИАНА и СРЗНАЧ для вычисления среднего значения

Пример 2. Во время вечернего обхода в больнице каждому больному была замерена температура тела. Продемонстрировать целесообразность использования параметра медиана вместо среднего значения для исследования ряда полученных значений.

Формула для нахождения среднего значения:

Формула для нахождения медианы:

Как видно из показателя среднего значения, в среднем температура у пациентов выше нормы, однако это не соответствует действительности. Медиана показывает, что как минимум у половины пациентов наблюдается нормальная температура тела, не превышающая показатель 36,6.

Внимание! Еще одним методом определения центральной тенденции является мода (наиболее часто встречающееся значение в исследуемом диапазоне). Чтобы определить центральную тенденцию в Excel следует использовать функцию МОДА. Обратите внимание: в данном примере значения медианы и моды совпадают:

То есть срединная величина, делящая одно множество на подмножества меньших и больших значений также является и наиболее часто встречающимся значением в множестве. Как видно, у большинства пациентов температура составляет 36,6.

Пример расчета медианы при статистическом анализе в Excel

Пример 3. В магазине работают 3 продавца. По результатам последних 10 дней необходимо определить работника, которому будет выдана премия. При выборе лучшего работника учитывается степень эффективности его работы, а не число проданных товаров.

Исходная таблица данных:

Для характеристики эффективности будем использовать сразу три показателя: среднее значение, медиана и мода. Определим их для каждого работника с использованием формул СРЗНАЧ, МЕДИАНА и МОДА соответственно:

Для определения степени разброса данных используем величину, которая является суммарным значением модуля разницы среднего значения и моды, среднего значения и медианы соответственно. То есть коэффициент x=|av-med|+|av-mod|, где:

  • av – среднее значение;
  • med – медиана;
  • mod – мода.

Рассчитаем значение коэффициента x для первого продавца:

Аналогично проведем расчеты для остальных продавцов. Полученные результаты:

Определим продавца, которому будет выдана премия:

Читайте также:  Как в excel снять фильтр

Примечание: функция НАИМЕНЬШИЙ возвращает первое минимальное значение из рассматриваемого диапазона значений коэффициента x.

Коэффициент x является некоторой количественной характеристикой стабильности работы продавцов, которую ввел экономист магазина. С его помощью удалось определить диапазон с наименьшими отклонениями значений. Этот способ демонстрирует, как можно использовать сразу три метода определения центральной тенденции для получения наиболее достоверных результатов.

Особенности использования функции МЕДИАНА в Excel

Функция имеет следующий синтаксис:

=МЕДИАНА( число1; [число2];. )

  • число1 – обязательный аргумент, характеризующий первое числовое значение, содержащееся в исследуемом диапазоне;
  • [число2] – необязательный второй (и последующие аргументы, всего до 255 аргументов), характеризующий второе и последующие значения исследуемого диапазона.
  1. При расчетах удобнее передавать сразу весь диапазон исследуемых значений вместо последовательного ввода аргументов.
  2. В качестве аргументов принимаются данные числового типа, имена, содержащие числа, данные ссылочного типа и массивы (например, =МЕДИАНА(<1;2;3;5;7;10>)).
  3. При расчете медианы учитываются ячейки, содержащие пустые значения или логические ИСТИНА, ЛОЖЬ, которые будут интерпретированы как числовые значения 1 и 0 соответственно. Например, результат выполнения функции с логическими значениями в аргументах (ИСТИНА;ЛОЖЬ) эквивалентен результату выполнения с аргументами (1;0) и равен 0,5.
  4. Если один или несколько аргументов функции принимают текстовые значения, которые не могут быть преобразованы в числовые, или содержат коды ошибок, результатом выполнения функции будет код ошибки #ЗНАЧ!.
  5. Для определения медианы выборки могут быть использованы другие функции Excel: ПРОЦЕНТИЛЬ.ВКЛ, КВАРТИЛЬ.ВКЛ, НАИБОЛЬШИЙ Примеры использования:
  • =ПРОЦЕНТИЛЬ.ВКЛ(A1:A10;0,5), поскольку по определению медиана – 50-я процентиль.
  • =КВАРТИЛЬ.ВКЛ(A1:A10;2), так как медиана – 2-я квартиль.
  • =НАИБОЛЬШИЙ(A1:A9;СЧЁТ(A1:A9)/2), но только если количество чисел в диапазоне является нечетным числом.
  1. Если в исследуемом диапазоне все числа распределены симметрично относительно среднего значения, среднее арифметическое и медиана для данного диапазона будут эквивалентны.
  2. При больших отклонениях данных в диапазоне («разбросе» значений) медиана лучше отражает тенденцию распределения значений, чем среднее арифметическое. Отличным примером является использование медианы для определения реального уровня зарплат у населения государства, в котором чиновники получают на порядок больше обычных граждан.
  3. Диапазон исследуемых значений может содержать:
  • Нечетное количество чисел. В этом случае медианой будет являться единственное число, разделяющее диапазон на два подмножества больших и меньших значений соответственно;
  • Четное количество чисел. Тогда медиана вычисляется как среднее арифметическое для двух числовых значений, разделяющих множество на два указанных выше подмножества.

Источник: exceltable.com

Как найти медиану в Excel

Использование функции MEDIAN в Microsoft Excel

В Excel есть несколько функций, которые рассчитывают часто используемые средние значения. Функция MEDIAN находит медиану или среднее значение в списке чисел.

Примечание . Эти инструкции относятся к Excel 2019, 2016, 2013, 2010, Excel 2019 для Mac, Excel 2016 для Mac, Excel для Mac 2011, Excel для Office 365 и Excel Online.

Как работает функция MEDIAN

Функция MEDIAN сортирует предоставленные аргументы, чтобы найти значение, которое арифметически падает в середине группы.

Если существует нечетное количество аргументов, функция идентифицирует среднее значение в диапазоне как среднее значение.

Если имеется четное число аргументов, функция принимает среднее арифметическое или среднее из двух средних значений.

аргументы

Значения, предоставляемые в качестве аргументов, не обязательно должны быть в каком-то определенном порядке для работы функции. Вы можете увидеть это в игре в четвертом ряду на примере изображения ниже.

MEDIAN Синтаксис функции

Синтаксис функции относится к макету функции и включает имя функции, скобки, разделители запятых и аргументы.

Ниже приведен синтаксис для функции MEDIAN:

  • = MEDIAN . Все формулы MEDIAN начинаются таким образом.
  • Number1: Обязательные данные, которые должны быть рассчитаны функцией.
  • Number2: Необязательные дополнительные значения данных для расчета в среднем. Максимально допустимое количество записей — 255, каждая из которых должна быть разделена запятой.

Этот аргумент может содержать:

  • Список чисел для усреднения
  • Ячейки ссылаются на расположение данных на листе
  • Диапазон ссылок на ячейки
  • Именованный диапазон

Варианты ввода функции и ее аргументов:

  • Ввод полной функции, например = MEDIAN (A2: F2) , в ячейку листа
  • Ввод функции и аргументов с использованием диалогового окна функции

Пример функции MEDIAN

Эти шаги подробно описывают, как ввести функцию MEDIAN и аргументы, используя диалоговое окно для первого примера, показанного на изображении выше.

  1. Нажмите на ячейку G2 , где будут отображаться результаты.
  2. Нажмите кнопку Вставить функцию , чтобы открыть диалоговое окно «Вставить функцию».
  3. Выберите Статистический в списке категорий.
  4. Выберите MEDIAN в списке функций и нажмите ОК .
  5. Выделите ячейки от A2 до F2 на листе, чтобы автоматически вставить этот диапазон.
  6. Нажмите Enter , чтобы завершить функцию и вернуться к рабочему листу.

Ответ 20 должен появиться в ячейке G2

Если щелкнуть ячейку G2, полная функция = MEDIAN (A2: F2) появится в строке формул над рабочим листом.

Почему медиана 20? Для первого примера в изображении, поскольку существует нечетное количество аргументов (пять), среднее значение вычисляется путем нахождения среднего числа. Здесь 20, потому что есть два числа больше (49 и 65) и два числа меньше (4 и 12).

Пустые ячейки против нулевых значений

При нахождении медианы в Excel, есть разница между пустыми или пустыми ячейками и теми, которые содержат нулевое значение.

Как показано в приведенных выше примерах, функция MEDIAN игнорирует пустые ячейки, но не ячейки, содержащие нулевое значение.

  • Медиана изменяется между первым и вторым примерами, потому что в ячейку A3 был добавлен ноль, а ячейка A2 пуста.
  • Добавление ноля к ячейке A3 изменяет число аргументов, передаваемых функции в ячейке G3, с пяти до шести — четное число. В результате медиана рассчитывается путем сложения двух средних значений (12 и 20) вместе, а затем деления на два, чтобы найти их среднее значение (16).

По умолчанию Excel отображает ноль (0) в ячейках с нулевым значением, как показано в примере выше. Эту опцию можно отключить, и, если это будет сделано, такие ячейки останутся пустыми, но нулевое значение для этой ячейки все еще будет включено в качестве аргумента функции при вычислении медианы.

Примечание . Этот параметр нельзя отключить в Excel Online.

Как включить или отключить этот параметр в Excel 2019, Excel 2016, Excel 2013 и Excel 2010 :

  1. Перейдите на вкладку Файл и нажмите Параметры .
  2. Перейдите в категорию Дополнительно на левой панели параметров.
  3. На правой стороне прокручивайте вниз, пока не найдете раздел Параметры отображения для этого рабочего листа .
  4. Чтобы скрыть нулевые значения в ячейках, снимите флажок Показать ноль в ячейках с нулевым значением . Чтобы отобразить нули, поставьте галочку в поле.
  5. Сохраните любые изменения с помощью кнопки ОК .

Как включить или отключить этот параметр в Excel 2019 для Mac, Excel 2016 для Mac и Excel для Mac 2011 :

  1. Перейдите в меню Excel .
  2. Нажмите Настройки .
  3. Нажмите Вид в разделе «Авторизация».
  4. Снимите флажок Показать нулевые значения в разделе Параметры окна .

Источник: solutics.ru

Условная медиана в MS Excel

Я пытаюсь вычислить условную медиану диаграммы, которая выглядит так:

Я использую MS Excel 2007. Я знаю инструкцию AVERAGEIF(), но для медианы нет эквивалента. Главный трюк заключается в том, что есть строки без данных – например, 4-й “а” выше. В этом случае я не хочу, чтобы эта строка вообще не учитывалась в расчетах.

Googling предложила следующее, но Excel не примет формат формул (может быть, потому, что он 2007?)

Excel дает ошибку, говоря, что что-то не так с моей формулой (что-то связано с условием *), я также пробовал следующее, но в вычислениях подсчитывает пустые ячейки как:

Я знаю, что эти формулы возвращают массивы Excel, что означает, что нужно ввести “Ctrl-shift-enter”, чтобы заставить его работать правильно.

Как я могу выполнить условную оценку и не считать пустые ячейки?

excel worksheet-function median

4 ответа

8 Решение Cody Hatch [2009-04-13 02:02:00]

Вложенные операторы if.

Не так много объяснять – он проверяет, является ли A х. Если это так, он проверяет, не является ли B непустым. Все, что соответствует обоим условиям, вычисляется как часть медианы.

Учитывая следующий набор данных:

Вышеупомянутая формула возвращает 3.5, что, как я считаю, вам нужно.

4 Doc [2011-08-18 04:27:00]

Используйте формулу Googled, но вместо того, чтобы нажимать Enter после ввода ее в строку формулы, нажмите Ctrl + Shift + Enter одновременно (вместо Enter ). Это помещает скобки вокруг формулы и будет рассматривать ее как массив.

Будьте осторожны, если вы его отредактируете, вы не сможете снова нажать Enter или формула не будет действительна. Если вы редактируете, вы должны сделать то же самое, когда сделали ( Ctrl + Shift + Enter ).

Существует другой способ, который не включает формулу массива, для которой требуется операция CtrlShiftEnter. Он использует функцию Aggregate(), предлагаемую в Excel 2010, 2011 и последующие. Метод также работает для min, max и различных процентилей. Aggregate() позволяет игнорировать ошибки, поэтому трюк состоит в том, чтобы сделать все значения, которые не требуются, вызывают ошибки. Самый простой способ – выполнить поставленную выше задачу:

= Агрегат (16,6, (B: B)/((A: A = “x” ) * (B: B “”)), 0,5)

Первый и последний параметры задают для сцены 50% -ную процентиль, которая является срединной, вторая говорит, игнорирует все ошибки (включая DIV # 0), а третий говорит, что выбирает данные столбца B и делит его на число, которое является одним для всех непустых значений, которые имеют x в столбце A, и ноль в противном случае. Нули создают деление на нулевое исключение и будут игнорироваться, потому что a/1 = a и a/0 = Div # 0

Метод работает для квартилей (с соответствующим значением p), все остальные процентили, конечно, и для max и min, используя большую или малую функцию с соответствующими аргументами.

Это аналогичная конструкция трюков Sumproduct(), которые так популярны, но которые нельзя использовать ни в каких квантилях или в значениях max min, поскольку они производят нули, которые выглядят как числа для этих функций.

0 artnaz [2017-07-27 21:33:00]

Возможно, чтобы обобщить это немного больше, вместо этого.

. вы можете использовать следующее:

Обратите внимание, что фигурные скобки относятся к формуле массива; вы не должны размещать скобки в своей формуле, но нажмите CTRL + SHIFT + ENTER (или CMD + SHIFT + ENTER на macOS) при вводе формулы

Источник: qarchive.ru

Используйте медиану!

Самородов Федор Анатольевич: Используйте медиану!

Когда Роман Абрамович заходит в бар, все его посетители становятся в среднем миллиардерами! 🙂

Эта старая шутка иллюстрирует проблему вычисления среднего значения. Когда нам требуется среднее значение по столбцу, обычно мы рефлекторно используем агрегатную функцию AVG. Но, как ни странно, в большинстве случаев такое решение будет неправильным.

Вот классический пример – посмотрите на список сотрудников:

Какова средняя зарплата в компании? Если использовать популярную функцию AVG, то получим среднее арифметическое – чуть больше миллиона рублей.

И это будет правдой, отдел кадров наверняка не откажется использовать эту статистику для привлечения новых сотрудников.

А вот профсоюз работников скорее всего с такой статистикой не согласится. Ведь если оценивать “по честному”, то зарплата в среднем чуть больше ста рублей!

Правильное решение – использовать не среднее арифметическое, а медиану. Медианная зарплата – это цифра, которая делит список сотрудников ровно пополам: половина получает зарплату меньше медианы, а другая половина – больше.

А теперь заново просмотрите все ваши аналитические SELECT’ы – наверняка во многих местах вы почувствуете необходимость заменить среднее арифметическое на медиану.

В Transact-SQL вычисление медианы можно выполнить при помощи функции PERCENTILE_CONT. Эта функция расчитывает процентили, так что для получения медианы нужно указать параметр 0,5.

Конечно, у такого метода есть и недостатки, которые обязательно следует принять во внимание. Их два:

  1. Медиана вычисляется гораздо медленнее, чем среднее арифметическое. Если посмотреть на план исполнения этого запроса, сразу станет понятно насколько тяжело серверу даётся вычисление процентилей.
  2. Функция PERCENTILE_CONT весьма неудобно оформлена синтаксически. Не как обычная агрегатная функция и даже не как функция от набора строк. Это функция над отсортированным набором, поэтому использовать её в запросах бывает не очень удобно.
  • Что за странный синтаксис: “WITHIN GROUP”?
  • Зачем здесь “TOP (1)”?
  • Почему в секции “OVER” пустые скобки – разве так можно?
  • Как посчитать медиану в старых версиях SQL Server’а?

Хотите досконально разобраться со статистическими функциями в Transact-SQL? Приходите к нам на курсы в Специалист – будет интересно! 😉

Подробнее об этом Вы сможете узнать на курсах SQL Server

Заказ добавлен в Корзину.

Для завершения оформления, пожалуйста, перейдите в Корзину!

Источник: www.specialist.ru