У меня есть таблица, подобная этой, из которой я получаю общее количество call_count
для конкретного model_id
в PHX
, SLC
и SJC
центр данных для определенного meta_date.Как получить среднее время, связанное с группировкой определенного столбца с помощью sql?
machine_name hour_of_day sec_of_hour meta_date client_id model_id call_count avg median datacenter
machineA 13 168 2014-07-30 00:00:00 Test13N 65 100 38.6382 5 PHX
machineA 13 170 2014-07-30 00:00:00 Test13N 65 200 34.382 4 PHX
machineB 13 168 2014-07-30 00:00:00 Test13N 65 200 33.62 3 SLC
machineB 13 170 2014-07-30 00:00:00 Test13N 65 300 32.60 2 SLC
machineC 13 168 2014-07-30 00:00:00 Test13N 65 400 31.20 6 SJC
machineC 13 170 2014-07-30 00:00:00 Test13N 65 500 39.82 8 SJC
Так с ниже запроса -
SELECT client_id, model_id,
sum(case when datacenter = 'PHX' then call_count END) phx,
sum(case when datacenter = 'SLC' then call_count END) slc,
sum(case when datacenter = 'SJC' then call_count END) sjc
FROM models b
where meta_date= CURDATE()-1
group by client_id, model_id
order by client_id, model_id;
я получаю результат, что означает для model_id 65, 300 звонков были сделаны из PHX, 500 звонков были сделаны из SLC и 900 звонков были сделаны из SJC Дата центр.
client_id model_id phx slc sjc
Test13N 65 300 500 900
Постановка задачи: -
Теперь то, что я должен сделать это, я также должен показать avg
время, потраченное в PHX, SLC и SJC центров обработки данных для всех вызовов для конкретного model_id , Аналогично для median
, а также для центров обработки данных PHX, SLC и SJC.
Значение времени avg, набранного 300 звонками в центре обработки данных PHX, и медианное время, затрачиваемое на 300 вызовов в центре обработки данных PHX. Аналогично для SLC и SJC.
И я думаю использовать средневзвешенное значение здесь. Так как с приведенной выше таблицей для machineA 100 звонков в среднем составляли 38,6382 мс в центре обработки данных PHX за 168 секунд часа, а 200 звонков в среднем составляли 34,382 мс в среднем за 170 секунд.
Так что я имею в виду расчета СРЕДНЕМ, как это для PHX центров обработки данных с использованием средневзвешенного здесь-
(100 * 38.6382 + 200* 34.382)/(100 + 200)
так что в конце концов я должен показать результат, как это -
client_id model_id phx slc sjc phx_avg phx_median slc_avg slc_median sjc_avg sjc_median
Test13N 65 300 500 900
Как Я размещаю приведенную выше формулу в своем текущем sql, чтобы вычислить время avg, принятое 300 вызовами в PHX, и медианное время, затраченное на 300 звонков в PHX. Аналогично для SLC и SJC. Я работаю с базой данных mysql.
Какова будет формула для медианы в этом случае, потому что я не думаю, что условная медиана может быть вычислена из медианов подгрупп? – Fabricator