[firebase-br] Select com duplo Group By

Sandro Souza escovadordebits em gmail.com
Qui Abr 3 19:19:22 -03 2014


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
>



Mais detalhes sobre a lista de discussão lista