При написании статьи использовались ссылки:
Как правильно вычислить среднее значение?
Квадратный корень в запросе 1С
Как правильно вычислить среднее значение?
Средняя зарплата… Средняя продолжительность жизни… Практически каждый день мы с вами слышим эти словосочетания, используемые для описания множества одним единственным числом. Но как ни странно, «среднее значение» — достаточно коварное понятие, часто вводящее в заблуждение обычного, неискушенного в математической статистике, человека.
В чем проблема?
Под средним значением чаще всего подразумевается среднее арифметическое, которое очень сильно варьируется под воздействием единичных фактов или событий. И вы не получите реального представления о том, как именно распределены значения, которые вы изучаете.
Давайте обратимся к классическому примеру со средней зарплатой.
В какой-то абстрактной компании работает десять сотрудников. Девять из них получают зарплату около 50 000 рублей, а один 1 500 000 рублей (по странному совпадению он же является генеральным директором этой компании).
Средним значением в данном случае будет 195 150 рублей, что согласитесь, неправильно.
Какие способы вычисления среднего бывают?
- Среднее арифметическое
- Среднее гармоническое
- Среднее квадратическое
- Среднее усеченное
- Среднее винсоризованное
- Медиана
- Мода
Перечисленные способы вычисления возможно реализовать на языке запросов 1С. Описание перечисленных и прочих способов вычисления среднего можно найти по ссылке Меры центральной тенденции.
И вот какие значения у нас получились:
Пример текста запроса
Текст запроса для вычисления различных вариантов среднего с числовыми данными из текста статьи (КлючеваяОперация: "Операция10"), его можно вставить в консоль запросов и выполнить:
- временная таблица втЗамерыВремени - исходный массив числовых данных;
- временная таблица втКлючевыеОперацииСтатистика - результат различных рассчетов среднего;
- временные таблицы втЗамерыВремениПоВозрастанию и втКлючевыеОперацииАгрегаты - базовые данные для всех вариантов вычисления среднего;
- временные таблицы в тексте запроса составлены так что бы различные варианты вычисления среднего были разделены и можно было понять и отделить нужный вариант;
- вариант Среднее арифметическое результат аналогичен функции СРЕДНЕЕ();
- вариант Среднее гармоническое вычисляется практически так же просто как и Среднее арифметическое;
- вариант Среднее квадратическое использует вычисление из статьи Квадратный корень в запросе 1С;
- варианты Среднее усеченное, Среднее винсоризованное и Медиана используют упорядоченный входной набор данных - временная таблица втЗамерыВремениПоВозрастанию, который имеет ограничение на количество строк втЗамерыВремени, для всех остальных вариантов можно обойтись временной таблицей втЗамерыВремени без ограничения количества строк;
- вариант Мода может обработать входной набор данных отличный от числового;
- варианты Среднее усеченное, Среднее винсоризованное позволяют получить усредненные значения минимума и максимума входного набора данных.
ВЫБРАТЬ
"Операция10" КАК КлючеваяОперация,
48000 КАК ВремяВыполнения
ПОМЕСТИТЬ втЗамерыВремени
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Операция10",
49000
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Операция10",
49500
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Операция10",
50000
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Операция10",
50000
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Операция10",
50500
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Операция10",
51000
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Операция10",
51500
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Операция10",
52000
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Операция10",
1500000
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Операция5",
98
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Операция5",
99
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Операция5",
100
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Операция5",
101
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Операция5",
102
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ
"Операция1",
50
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ ПЕРВЫЕ 1000000000
АВТОНОМЕРЗАПИСИ() КАК НомерСтроки,
втЗамерыВремени.КлючеваяОперация КАК КлючеваяОперация,
втЗамерыВремени.ВремяВыполнения КАК ВремяВыполнения
ПОМЕСТИТЬ втЗамерыВремениПоВозрастанию
ИЗ
втЗамерыВремени КАК втЗамерыВремени
УПОРЯДОЧИТЬ ПО
втЗамерыВремени.КлючеваяОперация,
втЗамерыВремени.ВремяВыполнения
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
втЗамерыВремениПоВозрастанию.КлючеваяОперация КАК КлючеваяОперация,
КОЛИЧЕСТВО(втЗамерыВремениПоВозрастанию.ВремяВыполнения) КАК КоличествоЗамеров,
МИНИМУМ(втЗамерыВремениПоВозрастанию.ВремяВыполнения) КАК ВремяВыполненияМинимум,
МАКСИМУМ(втЗамерыВремениПоВозрастанию.ВремяВыполнения) КАК ВремяВыполненияМаксимум,
ВЫРАЗИТЬ(СРЕДНЕЕ(втЗамерыВремениПоВозрастанию.ВремяВыполнения) КАК ЧИСЛО(15, 3)) КАК ВремяВыполненияСреднее,
СУММА(втЗамерыВремениПоВозрастанию.ВремяВыполнения) КАК ВремяВыполненияСумма,
СУММА(1 / втЗамерыВремениПоВозрастанию.ВремяВыполнения) КАК ВремяВыполненияСуммаОбратная,
СУММА(втЗамерыВремениПоВозрастанию.ВремяВыполнения * втЗамерыВремениПоВозрастанию.ВремяВыполнения) КАК ВремяВыполненияСуммаКвадратическая,
МИНИМУМ(втЗамерыВремениПоВозрастанию.НомерСтроки) КАК НомерСтрокиМинимум,
МАКСИМУМ(втЗамерыВремениПоВозрастанию.НомерСтроки) КАК НомерСтрокиМаксимум,
(МАКСИМУМ(втЗамерыВремениПоВозрастанию.НомерСтроки) - МИНИМУМ(втЗамерыВремениПоВозрастанию.НомерСтроки)) / 2 КАК НомерСтрокиСередина,
ВЫРАЗИТЬ((МАКСИМУМ(втЗамерыВремениПоВозрастанию.НомерСтроки) - МИНИМУМ(втЗамерыВремениПоВозрастанию.НомерСтроки)) / 2 КАК ЧИСЛО(10, 0)) КАК НомерСтрокиСерединаЦелое,
ВЫРАЗИТЬ(КОЛИЧЕСТВО(втЗамерыВремениПоВозрастанию.ВремяВыполнения) / 100 * 10 КАК ЧИСЛО(10, 0)) КАК КоличествоУсечения
ПОМЕСТИТЬ втКлючевыеОперацииАгрегаты
ИЗ
втЗамерыВремениПоВозрастанию КАК втЗамерыВремениПоВозрастанию
СГРУППИРОВАТЬ ПО
втЗамерыВремениПоВозрастанию.КлючеваяОперация
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
втКлючевыеОперацииАгрегаты.КлючеваяОперация КАК КлючеваяОперация,
ВЫРАЗИТЬ(втКлючевыеОперацииАгрегаты.ВремяВыполненияСумма / втКлючевыеОперацииАгрегаты.КоличествоЗамеров КАК ЧИСЛО(15, 3)) КАК ВремяВыполненияСреднееАрифметическое,
втКлючевыеОперацииАгрегаты.ВремяВыполненияСумма КАК ВремяВыполненияСумма,
втКлючевыеОперацииАгрегаты.КоличествоЗамеров КАК КоличествоЗамеров
ПОМЕСТИТЬ втКлючевыеОперацииСреднееАрифметическое
ИЗ
втКлючевыеОперацииАгрегаты КАК втКлючевыеОперацииАгрегаты
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
втКлючевыеОперацииАгрегаты.КлючеваяОперация КАК КлючеваяОперация,
ВЫРАЗИТЬ(втКлючевыеОперацииАгрегаты.КоличествоЗамеров / втКлючевыеОперацииАгрегаты.ВремяВыполненияСуммаОбратная КАК ЧИСЛО(15, 3)) КАК ВремяВыполненияСреднееГармоническое,
втКлючевыеОперацииАгрегаты.КоличествоЗамеров КАК КоличествоЗамеров,
втКлючевыеОперацииАгрегаты.ВремяВыполненияСуммаОбратная КАК ВремяВыполненияСуммаОбратная
ПОМЕСТИТЬ втКлючевыеОперацииСреднееГармоническое
ИЗ
втКлючевыеОперацииАгрегаты КАК втКлючевыеОперацииАгрегаты
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
втКлючевыеОперацииАгрегаты.КлючеваяОперация КАК КлючеваяОперация,
втКлючевыеОперацииАгрегаты.ВремяВыполненияСуммаКвадратическая / втКлючевыеОперацииАгрегаты.КоличествоЗамеров КАК ВремяВыполненияСуммаКвадратическаяСредняя,
втКлючевыеОперацииАгрегаты.ВремяВыполненияСуммаКвадратическая КАК ВремяВыполненияСуммаКвадратическая,
втКлючевыеОперацииАгрегаты.КоличествоЗамеров КАК КоличествоЗамеров
ПОМЕСТИТЬ втКлючевыеОперацииКвадратическоеАгрегаты
ИЗ
втКлючевыеОперацииАгрегаты КАК втКлючевыеОперацииАгрегаты
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
SQRTS.КлючеваяОперация КАК КлючеваяОперация,
ВЫРАЗИТЬ((((SQRTS.Y + SQRTS.X / SQRTS.Y) / 2 + SQRTS.X / ((SQRTS.Y + SQRTS.X / SQRTS.Y) / 2)) / 2 + SQRTS.X / (((SQRTS.Y + SQRTS.X / SQRTS.Y) / 2 + SQRTS.X / ((SQRTS.Y + SQRTS.X / SQRTS.Y) / 2)) / 2)) / 2 КАК ЧИСЛО(15, 3)) КАК ВремяВыполненияСреднееКвадратическое,
SQRTS.X КАК ВремяВыполненияСуммаКвадратическаяСредняя
ПОМЕСТИТЬ втКлючевыеОперацииСреднееКвадратическое
ИЗ
(ВЫБРАТЬ
втКлючевыеОперацииКвадратическоеАгрегаты.КлючеваяОперация КАК КлючеваяОперация,
втКлючевыеОперацииКвадратическоеАгрегаты.ВремяВыполненияСуммаКвадратическаяСредняя КАК X,
ВЫБОР
КОГДА втКлючевыеОперацииКвадратическоеАгрегаты.ВремяВыполненияСуммаКвадратическаяСредняя < 0
ТОГДА NULL
КОГДА втКлючевыеОперацииКвадратическоеАгрегаты.ВремяВыполненияСуммаКвадратическаяСредняя < 0.000001
ТОГДА 0.0005623413251903491
КОГДА втКлючевыеОперацииКвадратическоеАгрегаты.ВремяВыполненияСуммаКвадратическаяСредняя < 0.00001
ТОГДА 0.001778279410038923
КОГДА втКлючевыеОперацииКвадратическоеАгрегаты.ВремяВыполненияСуммаКвадратическаяСредняя < 0.0001
ТОГДА 0.005623413251903491
КОГДА втКлючевыеОперацииКвадратическоеАгрегаты.ВремяВыполненияСуммаКвадратическаяСредняя < 0.001
ТОГДА 0.01778279410038923
КОГДА втКлючевыеОперацииКвадратическоеАгрегаты.ВремяВыполненияСуммаКвадратическаяСредняя < 0.01
ТОГДА 0.05623413251903491
КОГДА втКлючевыеОперацииКвадратическоеАгрегаты.ВремяВыполненияСуммаКвадратическаяСредняя < 0.1
ТОГДА 0.1778279410038923
КОГДА втКлючевыеОперацииКвадратическоеАгрегаты.ВремяВыполненияСуммаКвадратическаяСредняя < 1
ТОГДА 0.5623413251903491
КОГДА втКлючевыеОперацииКвадратическоеАгрегаты.ВремяВыполненияСуммаКвадратическаяСредняя < 10
ТОГДА 1.778279410038923
КОГДА втКлючевыеОперацииКвадратическоеАгрегаты.ВремяВыполненияСуммаКвадратическаяСредняя < 100
ТОГДА 5.623413251903491
КОГДА втКлючевыеОперацииКвадратическоеАгрегаты.ВремяВыполненияСуммаКвадратическаяСредняя < 1000
ТОГДА 17.78279410038923
КОГДА втКлючевыеОперацииКвадратическоеАгрегаты.ВремяВыполненияСуммаКвадратическаяСредняя < 10000
ТОГДА 56.23413251903491
КОГДА втКлючевыеОперацииКвадратическоеАгрегаты.ВремяВыполненияСуммаКвадратическаяСредняя < 100000
ТОГДА 177.8279410038923
КОГДА втКлючевыеОперацииКвадратическоеАгрегаты.ВремяВыполненияСуммаКвадратическаяСредняя < 1000000
ТОГДА 562.3413251903491
КОГДА втКлючевыеОперацииКвадратическоеАгрегаты.ВремяВыполненияСуммаКвадратическаяСредняя < 10000000
ТОГДА 1778.279410038923
КОГДА втКлючевыеОперацииКвадратическоеАгрегаты.ВремяВыполненияСуммаКвадратическаяСредняя < 100000000
ТОГДА 5623.413251903491
КОГДА втКлючевыеОперацииКвадратическоеАгрегаты.ВремяВыполненияСуммаКвадратическаяСредняя < 1000000000
ТОГДА 17782.79410038923
КОГДА втКлючевыеОперацииКвадратическоеАгрегаты.ВремяВыполненияСуммаКвадратическаяСредняя < 10000000000
ТОГДА 56234.13251903491
КОГДА втКлючевыеОперацииКвадратическоеАгрегаты.ВремяВыполненияСуммаКвадратическаяСредняя < 100000000000
ТОГДА 177827.9410038923
КОГДА втКлючевыеОперацииКвадратическоеАгрегаты.ВремяВыполненияСуммаКвадратическаяСредняя < 1000000000000
ТОГДА 562341.3251903491
ИНАЧЕ NULL
КОНЕЦ КАК Y
ИЗ
втКлючевыеОперацииКвадратическоеАгрегаты КАК втКлючевыеОперацииКвадратическоеАгрегаты) КАК SQRTS
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
втКлючевыеОперацииАгрегаты.КлючеваяОперация КАК КлючеваяОперация,
ВЫБОР
КОГДА втКлючевыеОперацииАгрегаты.НомерСтрокиСередина = втКлючевыеОперацииАгрегаты.НомерСтрокиСерединаЦелое
ТОГДА втКлючевыеОперацииАгрегаты.НомерСтрокиМинимум + втКлючевыеОперацииАгрегаты.НомерСтрокиСередина
ИНАЧЕ втКлючевыеОперацииАгрегаты.НомерСтрокиМинимум + втКлючевыеОперацииАгрегаты.НомерСтрокиСерединаЦелое - 1
КОНЕЦ КАК НомерСтрокиСерединаНижняя,
ВЫБОР
КОГДА втКлючевыеОперацииАгрегаты.НомерСтрокиСередина = втКлючевыеОперацииАгрегаты.НомерСтрокиСерединаЦелое
ТОГДА втКлючевыеОперацииАгрегаты.НомерСтрокиМинимум + втКлючевыеОперацииАгрегаты.НомерСтрокиСередина
ИНАЧЕ втКлючевыеОперацииАгрегаты.НомерСтрокиМинимум + втКлючевыеОперацииАгрегаты.НомерСтрокиСерединаЦелое
КОНЕЦ КАК НомерСтрокиСерединаВерхняя
ПОМЕСТИТЬ втКлючевыеОперацииМедианаАгрегаты
ИЗ
втКлючевыеОперацииАгрегаты КАК втКлючевыеОперацииАгрегаты
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
втКлючевыеОперацииМедианаАгрегаты.КлючеваяОперация КАК КлючеваяОперация,
ВЫРАЗИТЬ((втЗамерыВремениПоВозрастаниюНижняя.ВремяВыполнения + втЗамерыВремениПоВозрастаниюВерхняя.ВремяВыполнения) / 2 КАК ЧИСЛО(15, 3)) КАК ВремяВыполненияСреднееМедиана,
втЗамерыВремениПоВозрастаниюНижняя.ВремяВыполнения КАК ВремяВыполненияСреднееНижнее,
втЗамерыВремениПоВозрастаниюВерхняя.ВремяВыполнения КАК ВремяВыполненияСреднееВерхнее
ПОМЕСТИТЬ втКлючевыеОперацииСреднееМедиана
ИЗ
втКлючевыеОперацииМедианаАгрегаты КАК втКлючевыеОперацииМедианаАгрегаты
ВНУТРЕННЕЕ СОЕДИНЕНИЕ втЗамерыВремениПоВозрастанию КАК втЗамерыВремениПоВозрастаниюНижняя
ПО втКлючевыеОперацииМедианаАгрегаты.КлючеваяОперация = втЗамерыВремениПоВозрастаниюНижняя.КлючеваяОперация
И втКлючевыеОперацииМедианаАгрегаты.НомерСтрокиСерединаНижняя = втЗамерыВремениПоВозрастаниюНижняя.НомерСтроки
ВНУТРЕННЕЕ СОЕДИНЕНИЕ втЗамерыВремениПоВозрастанию КАК втЗамерыВремениПоВозрастаниюВерхняя
ПО втКлючевыеОперацииМедианаАгрегаты.КлючеваяОперация = втЗамерыВремениПоВозрастаниюВерхняя.КлючеваяОперация
И втКлючевыеОперацииМедианаАгрегаты.НомерСтрокиСерединаВерхняя = втЗамерыВремениПоВозрастаниюВерхняя.НомерСтроки
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
втЗамерыВремениПоВозрастанию.КлючеваяОперация КАК КлючеваяОперация,
втЗамерыВремениПоВозрастанию.ВремяВыполнения КАК ВремяВыполнения,
КОЛИЧЕСТВО(втЗамерыВремениПоВозрастанию.ВремяВыполнения) КАК КоличествоЗамеров
ПОМЕСТИТЬ втЗамерыВремениМода
ИЗ
втЗамерыВремениПоВозрастанию КАК втЗамерыВремениПоВозрастанию
СГРУППИРОВАТЬ ПО
втЗамерыВремениПоВозрастанию.КлючеваяОперация,
втЗамерыВремениПоВозрастанию.ВремяВыполнения
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
втЗамерыВремениМода.КлючеваяОперация КАК КлючеваяОперация,
МАКСИМУМ(втЗамерыВремениМода.КоличествоЗамеров) КАК КоличествоЗамеровМаксимум
ПОМЕСТИТЬ втКлючевыеОперацииМодаАгрегаты
ИЗ
втЗамерыВремениМода КАК втЗамерыВремениМода
СГРУППИРОВАТЬ ПО
втЗамерыВремениМода.КлючеваяОперация
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
втЗамерыВремениМода.КлючеваяОперация КАК КлючеваяОперация,
МИНИМУМ(втЗамерыВремениМода.ВремяВыполнения) КАК ВремяВыполненияСреднееМода,
втКлючевыеОперацииМодаАгрегаты.КоличествоЗамеровМаксимум КАК КоличествоЗамеровМаксимум
ПОМЕСТИТЬ втКлючевыеОперацииСреднееМода
ИЗ
втЗамерыВремениМода КАК втЗамерыВремениМода
ВНУТРЕННЕЕ СОЕДИНЕНИЕ втКлючевыеОперацииМодаАгрегаты КАК втКлючевыеОперацииМодаАгрегаты
ПО втЗамерыВремениМода.КлючеваяОперация = втКлючевыеОперацииМодаАгрегаты.КлючеваяОперация
И втЗамерыВремениМода.КоличествоЗамеров = втКлючевыеОперацииМодаАгрегаты.КоличествоЗамеровМаксимум
СГРУППИРОВАТЬ ПО
втЗамерыВремениМода.КлючеваяОперация,
втКлючевыеОперацииМодаАгрегаты.КоличествоЗамеровМаксимум
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
втКлючевыеОперацииАгрегаты.КлючеваяОперация КАК КлючеваяОперация,
втКлючевыеОперацииАгрегаты.КоличествоУсечения КАК КоличествоУсечения,
втКлючевыеОперацииАгрегаты.НомерСтрокиМинимум + втКлючевыеОперацииАгрегаты.КоличествоУсечения КАК НомерСтрокиМинимумУсредненный,
втКлючевыеОперацииАгрегаты.НомерСтрокиМаксимум - втКлючевыеОперацииАгрегаты.КоличествоУсечения КАК НомерСтрокиМаксимумУсредненный,
втКлючевыеОперацииАгрегаты.КоличествоЗамеров КАК КоличествоЗамеров,
втКлючевыеОперацииАгрегаты.КоличествоЗамеров - втКлючевыеОперацииАгрегаты.КоличествоУсечения * 2 КАК КоличествоЗамеровУсеченное
ПОМЕСТИТЬ втКлючевыеОперацииУсреднениеАгрегатыИсходные
ИЗ
втКлючевыеОперацииАгрегаты КАК втКлючевыеОперацииАгрегаты
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
втЗамерыВремениПоВозрастанию.НомерСтроки КАК НомерСтроки,
втЗамерыВремениПоВозрастанию.КлючеваяОперация КАК КлючеваяОперация,
втЗамерыВремениПоВозрастанию.ВремяВыполнения КАК ВремяВыполнения,
ВЫБОР
КОГДА втЗамерыВремениПоВозрастанию.НомерСтроки < втКлючевыеОперацииУсреднениеАгрегатыИсходные.НомерСтрокиМинимумУсредненный
ТОГДА 0
КОГДА втЗамерыВремениПоВозрастанию.НомерСтроки > втКлючевыеОперацииУсреднениеАгрегатыИсходные.НомерСтрокиМаксимумУсредненный
ТОГДА 0
ИНАЧЕ втЗамерыВремениПоВозрастанию.ВремяВыполнения
КОНЕЦ КАК ВремяВыполненияУсеченное,
ВЫБОР
КОГДА втЗамерыВремениПоВозрастанию.НомерСтроки < втКлючевыеОперацииУсреднениеАгрегатыИсходные.НомерСтрокиМинимумУсредненный
ТОГДА втЗамерыВремениПоВозрастаниюМинимум.ВремяВыполнения
КОГДА втЗамерыВремениПоВозрастанию.НомерСтроки > втКлючевыеОперацииУсреднениеАгрегатыИсходные.НомерСтрокиМаксимумУсредненный
ТОГДА втЗамерыВремениПоВозрастаниюМаксимум.ВремяВыполнения
ИНАЧЕ втЗамерыВремениПоВозрастанию.ВремяВыполнения
КОНЕЦ КАК ВремяВыполненияВинсозированное
ПОМЕСТИТЬ втЗамерыВремениУсреднение
ИЗ
втЗамерыВремениПоВозрастанию КАК втЗамерыВремениПоВозрастанию
ВНУТРЕННЕЕ СОЕДИНЕНИЕ втКлючевыеОперацииУсреднениеАгрегатыИсходные КАК втКлючевыеОперацииУсреднениеАгрегатыИсходные
ПО втЗамерыВремениПоВозрастанию.КлючеваяОперация = втКлючевыеОперацииУсреднениеАгрегатыИсходные.КлючеваяОперация
ВНУТРЕННЕЕ СОЕДИНЕНИЕ втЗамерыВремениПоВозрастанию КАК втЗамерыВремениПоВозрастаниюМинимум
ПО втЗамерыВремениПоВозрастанию.КлючеваяОперация = втЗамерыВремениПоВозрастаниюМинимум.КлючеваяОперация
И (втКлючевыеОперацииУсреднениеАгрегатыИсходные.НомерСтрокиМинимумУсредненный = втЗамерыВремениПоВозрастаниюМинимум.НомерСтроки)
ВНУТРЕННЕЕ СОЕДИНЕНИЕ втЗамерыВремениПоВозрастанию КАК втЗамерыВремениПоВозрастаниюМаксимум
ПО втЗамерыВремениПоВозрастанию.КлючеваяОперация = втЗамерыВремениПоВозрастаниюМаксимум.КлючеваяОперация
И (втКлючевыеОперацииУсреднениеАгрегатыИсходные.НомерСтрокиМаксимумУсредненный = втЗамерыВремениПоВозрастаниюМаксимум.НомерСтроки)
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
втЗамерыВремениУсреднение.КлючеваяОперация КАК КлючеваяОперация,
МИНИМУМ(втЗамерыВремениУсреднение.ВремяВыполненияВинсозированное) КАК ВремяВыполненияМинимумУсредненный,
МАКСИМУМ(втЗамерыВремениУсреднение.ВремяВыполненияВинсозированное) КАК ВремяВыполненияМаксимумУсредненный,
СУММА(втЗамерыВремениУсреднение.ВремяВыполненияУсеченное) КАК ВремяВыполненияСуммаУсеченная,
СУММА(втЗамерыВремениУсреднение.ВремяВыполненияВинсозированное) КАК ВремяВыполненияСуммаВинсозированная,
МАКСИМУМ(втКлючевыеОперацииУсреднениеАгрегатыИсходные.КоличествоЗамеров) КАК КоличествоЗамеров,
МАКСИМУМ(втКлючевыеОперацииУсреднениеАгрегатыИсходные.КоличествоЗамеровУсеченное) КАК КоличествоЗамеровУсеченное
ПОМЕСТИТЬ втКлючевыеОперацииУсреднениеАгрегаты
ИЗ
втЗамерыВремениУсреднение КАК втЗамерыВремениУсреднение
ВНУТРЕННЕЕ СОЕДИНЕНИЕ втКлючевыеОперацииУсреднениеАгрегатыИсходные КАК втКлючевыеОперацииУсреднениеАгрегатыИсходные
ПО втЗамерыВремениУсреднение.КлючеваяОперация = втКлючевыеОперацииУсреднениеАгрегатыИсходные.КлючеваяОперация
СГРУППИРОВАТЬ ПО
втЗамерыВремениУсреднение.КлючеваяОперация
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
втКлючевыеОперацииУсреднениеАгрегаты.КлючеваяОперация КАК КлючеваяОперация,
ВЫРАЗИТЬ(втКлючевыеОперацииУсреднениеАгрегаты.ВремяВыполненияСуммаУсеченная / втКлючевыеОперацииУсреднениеАгрегаты.КоличествоЗамеровУсеченное КАК ЧИСЛО(15, 3)) КАК ВремяВыполненияСреднееУсеченное,
втКлючевыеОперацииУсреднениеАгрегаты.ВремяВыполненияСуммаУсеченная КАК ВремяВыполненияСуммаУсеченная,
втКлючевыеОперацииУсреднениеАгрегаты.КоличествоЗамеровУсеченное КАК КоличествоЗамеровУсеченное
ПОМЕСТИТЬ втКлючевыеОперацииСреднееУсеченное
ИЗ
втКлючевыеОперацииУсреднениеАгрегаты КАК втКлючевыеОперацииУсреднениеАгрегаты
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
втКлючевыеОперацииУсреднениеАгрегаты.КлючеваяОперация КАК КлючеваяОперация,
ВЫРАЗИТЬ(втКлючевыеОперацииУсреднениеАгрегаты.ВремяВыполненияСуммаВинсозированная / втКлючевыеОперацииУсреднениеАгрегаты.КоличествоЗамеров КАК ЧИСЛО(15, 3)) КАК ВремяВыполненияСреднееВинсозированное,
втКлючевыеОперацииУсреднениеАгрегаты.ВремяВыполненияСуммаВинсозированная КАК ВремяВыполненияСуммаВинсозированная,
втКлючевыеОперацииУсреднениеАгрегаты.КоличествоЗамеров КАК КоличествоЗамеров
ПОМЕСТИТЬ втКлючевыеОперацииСреднееВинсозированное
ИЗ
втКлючевыеОперацииУсреднениеАгрегаты КАК втКлючевыеОперацииУсреднениеАгрегаты
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
втКлючевыеОперацииАгрегаты.КлючеваяОперация КАК КлючеваяОперация,
втКлючевыеОперацииАгрегаты.КоличествоЗамеров КАК КоличествоЗамеров,
втКлючевыеОперацииАгрегаты.ВремяВыполненияМинимум КАК ВремяВыполненияМинимум,
втКлючевыеОперацииУсреднениеАгрегаты.ВремяВыполненияМинимумУсредненный КАК ВремяВыполненияМинимумУсредненный,
втКлючевыеОперацииАгрегаты.ВремяВыполненияМаксимум КАК ВремяВыполненияМаксимум,
втКлючевыеОперацииУсреднениеАгрегаты.ВремяВыполненияМаксимумУсредненный КАК ВремяВыполненияМаксимумУсредненный,
втКлючевыеОперацииАгрегаты.ВремяВыполненияСреднее КАК ВремяВыполненияСреднее,
втКлючевыеОперацииСреднееАрифметическое.ВремяВыполненияСреднееАрифметическое КАК ВремяВыполненияСреднееАрифметическое,
втКлючевыеОперацииСреднееГармоническое.ВремяВыполненияСреднееГармоническое КАК ВремяВыполненияСреднееГармоническое,
втКлючевыеОперацииСреднееКвадратическое.ВремяВыполненияСреднееКвадратическое КАК ВремяВыполненияСреднееКвадратическое,
втКлючевыеОперацииСреднееМедиана.ВремяВыполненияСреднееМедиана КАК ВремяВыполненияСреднееМедиана,
втКлючевыеОперацииСреднееМода.ВремяВыполненияСреднееМода КАК ВремяВыполненияСреднееМода,
втКлючевыеОперацииСреднееУсеченное.ВремяВыполненияСреднееУсеченное КАК ВремяВыполненияСреднееУсеченное,
втКлючевыеОперацииСреднееВинсозированное.ВремяВыполненияСреднееВинсозированное КАК ВремяВыполненияСреднееВинсозированное
ПОМЕСТИТЬ втКлючевыеОперацииСтатистика
ИЗ
втКлючевыеОперацииАгрегаты КАК втКлючевыеОперацииАгрегаты
ВНУТРЕННЕЕ СОЕДИНЕНИЕ втКлючевыеОперацииСреднееАрифметическое КАК втКлючевыеОперацииСреднееАрифметическое
ПО втКлючевыеОперацииАгрегаты.КлючеваяОперация = втКлючевыеОперацииСреднееАрифметическое.КлючеваяОперация
ВНУТРЕННЕЕ СОЕДИНЕНИЕ втКлючевыеОперацииСреднееГармоническое КАК втКлючевыеОперацииСреднееГармоническое
ПО втКлючевыеОперацииАгрегаты.КлючеваяОперация = втКлючевыеОперацииСреднееГармоническое.КлючеваяОперация
ВНУТРЕННЕЕ СОЕДИНЕНИЕ втКлючевыеОперацииСреднееКвадратическое КАК втКлючевыеОперацииСреднееКвадратическое
ПО втКлючевыеОперацииАгрегаты.КлючеваяОперация = втКлючевыеОперацииСреднееКвадратическое.КлючеваяОперация
ВНУТРЕННЕЕ СОЕДИНЕНИЕ втКлючевыеОперацииСреднееМедиана КАК втКлючевыеОперацииСреднееМедиана
ПО втКлючевыеОперацииАгрегаты.КлючеваяОперация = втКлючевыеОперацииСреднееМедиана.КлючеваяОперация
ВНУТРЕННЕЕ СОЕДИНЕНИЕ втКлючевыеОперацииСреднееМода КАК втКлючевыеОперацииСреднееМода
ПО втКлючевыеОперацииАгрегаты.КлючеваяОперация = втКлючевыеОперацииСреднееМода.КлючеваяОперация
ВНУТРЕННЕЕ СОЕДИНЕНИЕ втКлючевыеОперацииУсреднениеАгрегаты КАК втКлючевыеОперацииУсреднениеАгрегаты
ПО втКлючевыеОперацииАгрегаты.КлючеваяОперация = втКлючевыеОперацииУсреднениеАгрегаты.КлючеваяОперация
ВНУТРЕННЕЕ СОЕДИНЕНИЕ втКлючевыеОперацииСреднееУсеченное КАК втКлючевыеОперацииСреднееУсеченное
ПО втКлючевыеОперацииАгрегаты.КлючеваяОперация = втКлючевыеОперацииСреднееУсеченное.КлючеваяОперация
ВНУТРЕННЕЕ СОЕДИНЕНИЕ втКлючевыеОперацииСреднееВинсозированное КАК втКлючевыеОперацииСреднееВинсозированное
ПО втКлючевыеОперацииАгрегаты.КлючеваяОперация = втКлючевыеОперацииСреднееВинсозированное.КлючеваяОперация