Green-sell.info

Новые технологии
671 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Среднее арифметическое в access

Базы данных Microsoft Access

Вычисляемые поля

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

Вычисляемое поле может содержать вызовы встроенных функций Access и следующие операторы:
+ –
складывает два арифметических выражения.
— –
вычитает из первого арифметического выражения второе.
* –
перемножает два арифметических выражения.
/ –
делит первое арифметическое выражение на второе.
округляет два арифметических выражения до целых значений и делит первое на второе. Результат округляется до целого.
^ –
возводит первое арифметическое выражение в степень, задаваемую вторым арифметическим выражением.
MOD –
округляет оба арифметических выражения до целых значений, делит первое на второе и возвращает остаток.
& –
создает текстовую строку как результат присоединения второй строки к концу первой. Если один из операндов является числом, то оно автоматически преобразуется в строку символов.

На рис. 6.7 показан пример вычисляемого поля для таблицы тАттестат. Вычисляемое поле Среднее выводит средний балл по трем предметам: Русский, Математика, Физика.

Рис. 6.7. Запрос на основе таблицы тАттестат с вычисляемым полем Среднее

Итоговые запросы

Для вычисления итоговых значений надо нажать кнопку Групповые операции(), чтобы в бланке QBE появилась строка Групповые операции. Access использует установку Группировка в строке Групповая операция для любого поля, занесенного в бланк запроса. Теперь записи по каждому полю группируются, но итог не подводится. Если выполнить запрос сейчас, вы получите набор записей, включающий по одной строке для каждого уникального значения поля запроса – но без итогов. Для получения итогов замените установку Группировка в строке Групповая операция на конкретные итоговые функции.

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

Итоговые функции Access:

Sum – вычисляет сумму всех значений заданного поля в каждой группе.
Avg –
вычисляет среднее арифметическое всех значений данного поля в каждой группе.
Min –
возвращает наименьшее значение, найденное в этом поле внутри каждой группы.
Max
– возвращает наибольшее значение, найденное в этом поле внутри каждой группы.
Count
– возвращает число записей, в которых значения данного поля отличны от Null.
StDev
– стандартное отклонение всех значений данного поля в каждой группе.
Var
–вычисляет дисперсию значений данного поля в каждой группе.
First –
возвращает первое значение этого поля в группе.
Last
– возвращает последнее значение этого поля в группе.

На рис. 6.8 показан пример запроса с применением групповой операции Sum. Данный запрос является многотабличным и позволяет определить сумму выплат, сделанных каждым абитуриентом.

Рис. 6.8. Запрос с применением групповой операции Sum

Другие разделы учебника

  • Основные понятия об информации и информатике Подробнее
  • Устройство персонального компьютера Подробнее
  • Основы работы с операционной системой Windows 2000 Подробнее
  • Использование текстового процессора Microsoft Word для подготовки документов Подробнее
  • Обработка данных средствами Microsoft Excel Подробнее
  • Построение информационных систем в среде Microsoft Access Подробнее
  • Введение в локальные вычислительные сети Подробнее
  • Основы работы в глобальной сети Интернет Подробнее
  • Использование средств сжатия данных Подробнее
  • Основы защиты комьютерной информации Подробнее
  • Основы алгаритмизации и программирования Подробнее
  • Язык программирования Паскаль Подробнее

Среднее арифметическое в access

На этом шаге будут рассмотрены групповые операции.

При обработке данных в таблицах зачастую бывает необходимо учитывать в запросах не отдельные записи, а итоги, которые вычисляются или формируются определенным образом для различных групп записей в таблице. Например, необходимо выполнить запрос, в котором для каждого студента, было бы подсчитано количество полученных им оценок, а также вычислен средний балл. И затем на основании среднего балла определена стипендия, например, из расчета 100 р. за каждый балл. Другими словами, для отличника (средний балл = 5) размер стипендии должен составить 500 р.

Чтобы выполнить подобные вычисления, необходимо создать новый запрос в режиме конструктора, добавить в него с помощью кнопки Отобразить таблицу таблицы Студенты и Успеваемость, и затем воспользоваться кнопкой Групповые операции . После этого среди параметров запроса появится строка Групповые операции.

Чтобы вычислить для каждого студента его средний балл, необходимо вначале добавить в запрос поле Фамилия таблицы Студенты. При этом в строке Групповые операции по умолчанию устанавливается значение Группировка.

Итак, для каждой фамилии студента во втором столбце необходимо расположить общее количество оценок, полученных каждым студентом, в третьем — средний балл, и в четвертом — размер начисленной стипендии. Для этого во второй и третий столбцы запроса следует добавить поле Оценки таблицы Успеваемость, так как на основании именно этого поля будет определяться общее число оценок, а также вычисляться средний балл каждого студента.

При выполнении групповых операций можно использовать так называемые итоговые функции (таблица 1), которые следует выбирать из списка в добавленном поле Групповые операции.

Для подсчета количества полученных оценок следует выбрать функцию Count, а для определения среднего балла — функцию Avg. Затем созданный запрос следует сохранить, указав ему имя СреднийБалл.

Чтобы вычислить размер стипендии, необходимо создать выражение, с помощью построителя выражений. Для этого вначале следует выбрать в строке Групповые операции четвертого столбца запроса с помощью разворачивающегося списка пункт Выражение. Затем нужно, находясь в этом поле, нажать кнопку Построить и указать в построителе выражений формулу для вычисления размера стипендии. В данной формуле будет использоваться поле групповой операции с функцией Avg, полученное ранее.

Следует отметить, что подобным полям в запросах, как и вычисляемым полям, Access автоматически присваивает имена. В частности, поле, содержащее количество оценок, было названо CountОценка, а поле со средним баллом было названо АvgОценка. Следовательно, в окне Построитель выражений необходимо в формуле для стипендии использовать поле AvgОценка сохраненного запроса СреднийБалл. Т.е. нужно вставить в формулу поле AvgОценка из папки СреднийБалл и умножить это значение на 100 для определения размера стипендии (рис. 1). Однако необходимо иметь в виду, что если бы рассматриваемый запрос не был сохранен, то в Построителе выражений не появились бы поля CоuntОценка и AvgОценка.


Рис. 1. Построитель выражений. Определение размера стипендии

После установки всех описанных параметров макет запроса будет иметь вид, который представлен на рисунке 2.


Рис. 2. Макет запроса с использованием групповых операций

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

Результатом выполнения запроса СреднийБалл будет набор записей, представленный на рисунке 3.


Рис. 3. Результат выполнения запроса СреднийБалл

Создание запроса с вычисляемым полем можно увидеть здесь, а взять клип здесь.

На следующем шаге вы познакомитесь с перекрестными запросами.

Предыдущий шаг Содержание Следующий шаг

Лекция 6 Тема: Запросы. Вычисления и групповые операциию

6.1. Вычисляемые поля.

6.2. Создание выражений с помощью Построителя выражений.

6.3. Обзор встроенных функций СУБД MS Access.

6.4. Итоговые запросы.

6.5. Перекрестные запросы.

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

В QBE СУБД MS Access такие возможности предоставляются через вычисляемые поля и групповые операции.

6.1. Вычисляемые поля

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

Стоимость: Товары! Цена * Количество * (1-Скидка)

КоличествоМужчин: Sum(IIf(Пол = «м»; 1; 0))

Стоимость, КоличествоМужчин и ФИО являются именами вычисляемых полей и отображаются в режиме таблицы в заголовке столбца, символ двоеточие исполняет роль разделителя между именем вычисляемого поля и выражением.

Если имя таблицы или поля содержит пробелы, то его идентификатор обязан в выражении заключаться в квадратные скобки, например

Стоимость: Цена*[Количество товара]

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

Обновить вычисленные результаты вручную невозможно.

Для построения сложных выражений в СУБД MS Access входит утилита, называемая Построитель выражений.

6.2. Создание выражений с помощью Построителя выражений

Построитель выражений можно запустить щелкнув по клавише Построить на панели инструментов Конструктор запросов или выбрав в контекстном меню поля бланка запроса QBE команду меню Построить….

Рис.6.1. Диалоговое окно Построитель выражений

Рис.6.2. Диалоговое окно Построителя выражений
со сформированным выражением

6.3. Обзор встроенных функций СУБД MS Access

СУБД MS Access содержит более 100 встроенных функций (рис.6.3), которые можно использовать при формировании вычисляемого поля или при задании условия отбора.

Рис.6.3. Диалоговое окно Построителя выражений
со списком встроенных функций

Все встроенные функции в Построителе выражений сгруппированы по функциональному назначению.

При выборе функции в правом окне построителя, в нижней области окна Построителя выражений отображается синтаксис этой функции. Для более детальной справки необходимо щелкнуть по клавише Справка.

Обзор всех встроенных функций выходит за рамки лекции, поэтому рассмотрим наиболее используемые.

Таблица 6.1

Функции категории Дата/время

Возвращает значение дня месяца от 1 до 31

Возвращает значение месяца от 1 до 12

Возвращает название месяца соответствующего номеру месяца: 1 – январь, 2 – февраль, и т. д. Если значение аргумента флаг Истина, то функция возвращает аббревиатуру месяца: 1 – янв, 2 – фев и т. д.

Возвращает значение года от 100 до 9999

Если аргумент число не указан, возвращает значение дня недели от 1 (воскресенье) до 7 (суббота). Если аргумент число имеет значение 0, то возвращает значение дня недели от 1 (понедельник) до 7 (воскресенье)

Возвращает целое число от 0 од 23, представляющее значение часа

Возвращает числовое значение в зависимости от значения аргумента интервал:

«q» – квартал (от 1 до 4);

«m» – месяц (от 1 до 12);

«yyyy» – год (от 100 до 9999);

«ww» – неделя (от 1 до 53);

и т. п. (см. справку по функции).

Возвращает текущую системную дату

Функции категории Проверка

Возвращает значение Истина если значение переменной (значение поля в источнике данных) равно Null

Возвращает значение Истина если значение переменной (значение поля в источнике данных) имеет один из числовых типов данных

Функции категории Управление

IIf(условие; выр1; выр2)

Возвращает значение выражения выр1 если значение аргумента условие Истина и возвращает значение выражения выр2 если значение аргумента условие Ложь. Данная функция аналогична функции ЕСЛИ в MS Excel.

Продолжение таблицы 6.1

Функции категории Текстовые

Возвращает n левых символов аргумента текст

Возвращает n правых символов аргумента текст

Mid(текст; нач_поз[; n])

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

Возвращает количество символов (длину строки) в аргументе текст

Возвращает строковое значение аргумента текст без начальных пробелов

Возвращает строковое значение аргумента текст без заключительных пробелов

Возвращает строковое значение аргумента текст без начальных и заключительных пробелов

Возвращает строковое значение аргумента число

Возвращает значение аргумента переменная в формате заданным аргументом формат

6.3. Итоговые запросы

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

— количество сделок с Партнерами за определенный промежуток времени;

— средний объем продаж по каждому месяцу за предыдущий год.

Ответы на такие вопросы дает итоговый запрос.

Для вычисления итоговых значений необходимо нажать кнопку Групповые операции на панели инструментов Конструктор запросов, чтобы в бланке QBE появилась строка Групповая операция (после имени таблицы).

По умолчанию для каждого поля, занесенного в бланк запроса, устанавливается значение Группировка (итоги не подводятся).

Для подведения итогов необходимо заменить установку Группировка на конкретную итоговую функцию. В СУБД MS Access предусмотрено 9 функций (табл. 6.2), обеспечивающих выполнение групповых операций.

Таблица 6.2

Функции категории Статистические

Возвращает сумму набора значений

Возвращает среднее арифметическое набора значений

Возвращает наименьшее значение из набора значений

Возвращает наибольшее значение из набора значений

Возвращает количество записей в наборе значений отличных от Null

Возвращает первое значение поля в группе

Возвращает последнее значение поля в группе

Возвращает среднеквадратичное отклонение набора значений

Возвращает дисперсию набора значений

В раскрывающемся списке строки Групповая операция имеется установка Выражение. Данная установка применяется, когда в выражении (строка Поле) используется несколько итоговых функций.

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

Для решения более сложных статистических задач в СУБД MS Access предусмотрен специальный тип запроса – перекрестный запросов.

6.4. Перекрестные запросы

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

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

В области заголовков строк допускается размещение нескольких полей, в то время как в других областях может размещаться только по одному полю.

В перекрестном запросе допускается указание условий отбора. Сортировка может проводиться только по полям, размещенным в области заголовков строк.

Как правильно вычислить среднее значение?

Средняя зарплата… Средняя продолжительность жизни… Практически каждый день мы с вами слышим эти словосочетания, используемые для описания множества одним единственным числом. Но как ни странно, «среднее значение» — достаточно коварное понятие, часто вводящее в заблуждение обычного, неискушенного в математической статистике, человека.

В чем проблема?

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

Давайте обратимся к классическому примеру со средней зарплатой.

В какой-то абстрактной компании работает десять сотрудников. Девять из них получают зарплату около 50 000 рублей, а один 1 500 000 рублей (по странному совпадению он же является генеральным директором этой компании).

Средним значением в данном случае будет 195 150 рублей, что согласитесь, неправильно.

Какие способы вычисления среднего бывают?

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

  • x – среднее арифметическое;
  • xn – конкретное значение;
  • n – количество значений .
  • Хорошо работает при нормальном распределении значений в выборке;
  • Легко вычислить;
  • Интуитивно понятно.
  • Не дает реального представления о распределении значений;
  • Неустойчивая величина легко поддающаяся выбросам (как в случае с генеральным директором).

Вторым способом является вычисление моды, то есть наиболее часто встречающегося значения.

  • M – мода;
  • x – нижняя граница интервала, который содержит моду;
  • n – величина интервала;
  • fm– частота (сколько раз в ряду встречается то или иное значение);
  • fm-1 – частота интервала предшествующего модальному;
  • fm+1 – частота интервала следующего за модальным.
  • Прекрасно подходит для получения представления об общественном мнении;
  • Хорошо подходит для нечисловых данных (цвета сезона, хиты продаж, рейтинги);
  • Проста для понимания.
  • Моды может просто не быть (нет повторов);
  • Мод может быть несколько (многомодальное распределение).

Третий способ — это вычисление медианы, то есть значения, которое делит упорядоченную выборку на две половины и находится между ними. А если такого значения нет, то за медиану принимается среднее арифметическое между границами половин выборки.

  • Me – медиана;
  • x – нижняя граница интервала, который содержит медиану;
  • h – величина интервала;
  • f i – частота (сколько раз в ряду встречается то или иное значение);
  • Sm-1 – сумма частот интервалов предшествующих медианному;
  • fm – число значений в медианном интервале (его частота).
  • Дает самую реалистичную и репрезентативную оценку;
  • Устойчива к выбросам.
  • Сложнее вычислить, так как перед вычислением выборку нужно упорядочить.

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

А теперь давайте вернемся к нашему примеру и посчитаем все три варианта среднего при помощи специальных функций Excel:

  • СРЗНАЧ(число1;[число2];…) — функция для определения среднего арифметического;
  • МОДА.ОДН(число1;[число2];. ) — функция моды (в более старых версиях Excel использовалась МОДА(число1;[число2];. ) );
  • МЕДИАНА(число1;[число2];. ) — функция для поиска медианы.

И вот какие значения у нас получились:

В данном случае мода и медиана гораздо лучше характеризуют среднюю зарплату в компании.

Но что делать, когда в выборке не 10 значений, как в примере, а миллионы? В Excel это не посчитать, а вот в базе данных где хранятся ваши данные, без проблем.

Вычисляем среднее арифметическое на SQL

Тут все достаточно просто, так как в SQL предусмотрена специальная агрегатная функция AVG .

И чтобы ее использовать достаточно написать вот такой запрос:

Вычисляем моду на SQL

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

Вычисляем медиану на SQL

Как и в случае с модой, в SQL нет встроенной функции для вычисления медианы, зато есть универсальная функция для вычисления процентилей PERCENTILE_CONT .

Выглядит все это так:

Подробнее о работе функции PERCENTILE_CONT лучше почитать в справке Microsoft и Google BigQuery.

Какой способ все-таки использовать?

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

Но это не всегда так. Если вы работаете со средним, то остерегайтесь многомодального распределения:

На графике представлено бимодальное распределение с двумя пиками. Такая ситуация может возникнуть, например, при голосовании на выборах.

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

А еще лучше разделить выборку на две группы и собрать статистические данные для каждой.

Вывод:

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

Окончательный выбор меры центральной тенденции всегда лежит на аналитике.

Читать еще:  Remote file access
Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector
×
×