[firebase-br] Select com duplo Group By

Marcelo Moreira marcelomoreira.souza em gmail.com
Ter Abr 8 10:04:46 -03 2014


Sandro Souza,
Obrigado pela força mais uma vez cara.
Funcionou perfeitamente, vivendo e aprendendo.
Abraço!


Em 3 de abril de 2014 19:59, Rodrigo Gomes da Silva
<rodrgomes em gmail.com>escreveu:

> select AO.id_usuario, count(distinct av.id_atendimento)
>
>
> Em 3 de abril de 2014 19:19, Sandro Souza <escovadordebits em gmail.com
> >escreveu:
>
> > Bom dia/tarde/noite Marcelo.
> >
> > Aqui vai a minha humilde sugestão:
> >
> > select x.id_usuario,country(*) qtd from (
> > select AO.id_usuario, av.id_atendimento from ATENDIMENTO_OCORRENCIA AO
> > inner join ATENDIMENTO_VINCULO AV on (AO.ID_ATENDIMENTO =
> > AV.ID_ATENDIMENTO) where (AV.ID_ATENDIMENTO_VINCULO_TIPO = 4) and
> > (cast(AO.DATA_HORA as DATE) between '20.01.2005' and '03.04.2014') group
> by
> > AO.id_usuario, av.id_atendimento
> > ) x
> > group by x.id_usuario;
> >
> > Ou seja, aproveitar o select que mais se aproximou do resultado desejado,
> > colocando-o como um subselect de outro select mais externo.
> >
> > É a velha técnica de aproveitar o resultado de uma consulta e ir
> filtrando
> > ainda mais e quantas vezes (camadas) forem necessárias.
> >
> > Espero ter ajudado mais que atrapalhado. :-)
> > Em 03/04/2014 18:21, "Marcelo Moreira" <marcelomoreira.souza em gmail.com>
> > escreveu:
> >
> > > Pessoal,
> > > Blz?
> > >
> > > Estes select:
> > >
> > > select AO.id_usuario, av.id_atendimento
> > > from ATENDIMENTO_OCORRENCIA AO
> > > inner join ATENDIMENTO_VINCULO AV on (AO.ID_ATENDIMENTO =
> > > AV.ID_ATENDIMENTO)
> > > where
> > > (AV.ID_ATENDIMENTO_VINCULO_TIPO = 4) and
> > > (cast(AO.DATA_HORA as DATE) between '20.01.2005' and '03.04.2014')
> > >
> > > Esta retornando estes dados:
> > >
> > > ID_USUARIO ID_ATENDIMENTO
> > > 1 1137
> > > 1 1138
> > > 1 1138
> > > 1 1138
> > > 1 1138
> > > 1 1138
> > > 1 1138
> > >
> > > Se eu agrupar assim:
> > >
> > > select AO.id_usuario, av.id_atendimento
> > > from ATENDIMENTO_OCORRENCIA AO
> > > inner join ATENDIMENTO_VINCULO AV on (AO.ID_ATENDIMENTO =
> > > AV.ID_ATENDIMENTO)
> > > where
> > > (AV.ID_ATENDIMENTO_VINCULO_TIPO = 4) and
> > > (cast(AO.DATA_HORA as DATE) between '20.01.2005' and '03.04.2014')
> > > group by AO.id_usuario, av.id_atendimento
> > >
> > > Retorna isso:
> > >
> > > ID_USUARIO ID_ATENDIMENTO
> > > 1 1137
> > > 1 1138
> > >
> > >
> > > Preciso obter o resultado abaixo:
> > >
> > > ID_USUARIO COUNT
> > > 1 2
> > >
> > > O que eu teoricamente preciso fazer é agrupar o ID_ATENDIMENTO e depois
> > ter
> > > a quantidade de registros para cada ID_USUARIO.
> > >
> > > Não sei se deu pra entender mas se for o caso tento colocar mais
> > > informações do que preciso.
> > > Se alguem puder dar uma ajuda ja agradeço de já.
> > >
> > > Obrigado
> > >
> > >
> > > --
> > > Marcelo Moreira
> > > (31) 8420-2723
> > > E-mail / MSN: marcelomoreira.souza em hotmail.com
> > > E-mail: marcelomoreira.souza em gmail.com
> > > Skype: marcelomoreira.souza
> > > ______________________________________________
> > > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > > http://www.firebase.com.br/fb/artigo.php?id=1107
> > > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> > >
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > http://www.firebase.com.br/fb/artigo.php?id=1107
> > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> >
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



-- 
Marcelo Moreira
(31) 8420-2723
E-mail / MSN: marcelomoreira.souza em hotmail.com
E-mail: marcelomoreira.souza em gmail.com
Skype: marcelomoreira.souza



Mais detalhes sobre a lista de discussão lista