[firebase-br] Select com duplo Group By

Rodrigo Gomes da Silva rodrgomes em gmail.com
Qui Abr 3 19:59:21 -03 2014


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
>



Mais detalhes sobre a lista de discussão lista