Привет!
Помогите пожулуйста решить производственную задачу - нужно довольно срочно, поэтому решил задать вопрос сюда, дополнительно к гуглению.
Имеется файл, два поля - название запроса и время выполнения. Запросов около 80 (то есть руками выделать в экселе слишком нудно и долго и неинтересно), строк в файле - около 100.000.
Нужно посчитать среднее время выполнения каждого запроса,
urn:SystemAdmin.setPassword 78
urn:SystemAdmin.setPassword 69
urn:SystemAdmin.setPassword 42
urn:SystemAdmin.setPassword 38
...
urn:SystemAdmin.getProductionGroups 99
urn:SystemAdmin.getProductionGroups 94
urn:SystemAdmin.getProductionGroups 86
...
urn:SystemAdmin.getOrderSources 7
urn:SystemAdmin.getOrderSources 66
urn:SystemAdmin.getOrderSources 66
...
Пробую решить awk либо excel, возможны ваши варианты.
Заранее благодарен за помощь.
Как посчитать среднее время выполнения запроса?
Автор elvistudio, 19 ноя 2010 12:14
Сообщений в теме: 3
#1
Отправлено 19 ноября 2010 - 12:14
#2
Отправлено 19 ноября 2010 - 12:32
Если у вас эти данные в Excel-файле, скажем в столбце A - названия, а в столбце B - время выполнения, то посчитать среднее можно так:
В ячейку D1 - пишем название запроса, в ячейку E1 - формулу: =СУММЕСЛИ(A:A;D1;B:B)/СЧЁТЕСЛИ(A:A;D1)
Пример, во вложении.
В ячейку D1 - пишем название запроса, в ячейку E1 - формулу: =СУММЕСЛИ(A:A;D1;B:B)/СЧЁТЕСЛИ(A:A;D1)
Пример, во вложении.
Прикрепленные файлы
#3
Отправлено 19 ноября 2010 - 13:20
спасибо большое, работает!
правда, обработка в экселе в данном случае не очень удобна, так как максимальое количество строк - не более около 65000 - максимум, который вмещает эксель sheet.
awk script наверняка удобнее.
правда, обработка в экселе в данном случае не очень удобна, так как максимальое количество строк - не более около 65000 - максимум, который вмещает эксель sheet.
awk script наверняка удобнее.
#4
Отправлено 19 ноября 2010 - 14:18
а вот и решение - спасибо гуглу, http://unstableme.bl...le-columns.html и моему мозгу:)
awk 'BEGIN {} {n[$1]++; s_[$1] += $2; c_[$1]++} END {for (i in n){print i,s_[i]/c_[i]}}' logfile
awk 'BEGIN {} {n[$1]++; s_[$1] += $2; c_[$1]++} END {for (i in n){print i,s_[i]/c_[i]}}' logfile
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных