gallice 0 Denunciar post Postado Junho 17, 2013 Tenho uma Tabela com os seguintes campos, `id` INT(11) NOT NULL AUTO_INCREMENT , `usuario_id` INT(11) NOT NULL , `funcionario_id` INT(11) NULL DEFAULT NULL , `data_atendimento` DATETIME NULL DEFAULT NULL , `data_emissao` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP , `numero` INT(11) NULL DEFAULT NULL , `fila_id` INT(11) NOT NULL , preciso fazer uma consulta que retorne a media de atendimentos por usuário como por exemplo funcionario_id média de atendimento por dia 1 10 2 15,5 3 20 e outra consulta que preciso fazer é tempo médio de atendimento por exemplo fila tempo médio em segundos dia 1 68 2013-06-13 2 70 2013-06-13 3 28 2013-06-13 1 30 2013-06-14 2 36 2013-06-15 att Compartilhar este post Link para o post Compartilhar em outros sites
Jorge Seiki Teruya 15 Denunciar post Postado Junho 17, 2013 Cadê o select que você já fez? Começou pelo menos? Para resolver você vai usar as funções AVG, TIME_TO_SEC, COUNT. Compartilhar este post Link para o post Compartilhar em outros sites
gallice 0 Denunciar post Postado Junho 17, 2013 ENTÃO NA segunda consulta estava tentando colocar o avg na frente de um sum dai ficava "avg(sum(time" não dava certo burro pra c.... dai percebi que tinha que tirar o sum dai ficou a consulta abaixo e deu certo select AVG(TIME_TO_SEC(TIMEDIFF(data_atendimento,data_emissao))) as "segundos", cast(`senha`.`data_emissao` as date) AS `data` from `senha` WHERE data_atendimento IS NOT NULL group by (select cast(`senha`.`data_emissao` as date)); ele retornou o tempo medio de cada dia independente da fila tempo médio em segundos dia 68 2013-06-13 30 2013-06-14 gostaria de saber se tem como agrupar tbem esta informação tipo um group by data and id_fila para sair assim fila tempo data 1 30 15 2 45 15 1 35 16 na primeira select count(*) as quantidade, cast(senha.data_emissao as date) as data_atendimento from senha where funcionario_id = 1 group by (cast(`senha`.`data_emissao` as date)); ele retorna quantidade data 3 15 4 16 mas gostaria que a consulta retornasse id_funcionario quantidade data 1 15 15 2 21 15 3 15 15 1 25 16 como pode ver so consegui fazer passando o parametro do id_funcionario, mas a intenção era fazer um group by multiplo utilizando o id_funcionario e a cast da data, mais ou menos como a anterior. att Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Junho 17, 2013 Veja se isto ajuda. Compartilhar este post Link para o post Compartilhar em outros sites
gallice 0 Denunciar post Postado Junho 17, 2013 Obrigado pela ajuda motta, mas o calculo de datas esta correto ate onde eu consegui, o que me falta é o exemplificado acima exemplo com o codigo select AVG(TIME_TO_SEC(TIMEDIFF(data_atendimento,data_emissao))) as "segundos", cast(`senha`.`data_emissao` as date) AS `data` from `senha` WHERE data_atendimento IS NOT NULL group by (select cast(`senha`.`data_emissao` as date)); consegui tempo médio em segundos dia 68 2013-06-13 30 2013-06-14 o que eu quero é fila tempo data 1 30 2013-06-15 2 45 2013-06-15 1 35 2013-06-16 e na outra com o codigo select count(*) as quantidade, cast(senha.data_emissao as date) as data_atendimento from senha where funcionario_id = 1 group by (cast(`senha`.`data_emissao` as date)); retorna isto quantidade data 3 2013-06-15 4 2013-06-16 eu queria id_funcionario quantidade data 1 15 2013-06-15 2 21 2013-06-15 3 15 2013-06-15 1 25 2013-06-16 Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Junho 17, 2013 Não seria só colocar o fila_id no agrupamento ?! Compartilhar este post Link para o post Compartilhar em outros sites