Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

rafaelcmd

Contar registros repetidos

Recommended Posts

Tenho uma consulta que retorna nomes e locais de de duas tabelas:

 

1 --- João --- Praia

2 --- José --- Bar

3 --- José --- Praia

4 --- José --- Casa

5 --- José --- Escola

6 --- Maria --- Praia

7 --- Maria --- Escola

 

Preciso retornar as pessoas que estiveram em mais de três locais:

 

Por exempo, José esteve em mais de três locais, então preciso retornar o nome dele e a quantidade:

 

José --- 4

 

Como posso fazer no SQL Server?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando tento usar o GROUP BY nessa consulta:

Select pm.idParticipanteManifestacao As 'Código', 
	   p.NomeParticipante As 'Nome do Participante',
	   m.NomeManifestacao As 'Manifestação' 
	   
From 
	   tbParticipanteManifestacao pm

	   Inner Join tbParticipante p ON p.idParticipante = pm.idParticipante
       Inner Join tbManifestacao m ON m.idManifestacao = pm.idManifestacao
       
Group by p.NomeParticipante

Dá esse erro:

 

Mensagem 8120, Nível 16, Estado 1, Linha 1
A coluna 'tbParticipanteManifestacao.idParticipanteManifestacao' é inválida na lista de seleção porque não está contida em uma função de agregação nem na cláusula GROUP BY.

 

Só funciona quando eu coloco todas as colunas no GROUP BY.

 

O que se repete é o nome do participante, mas eu não consigo somá-los.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Select p.NomeParticipante As 'Nome do Participante', count(*) qtd

From tbParticipanteManifestacao pm

Inner Join tbParticipante p ON p.idParticipante = pm.idParticipante
Inner Join tbManifestacao m ON m.idManifestacao = pm.idManifestacao

Group by p.NomeParticipante
Having count(*) > 1

Creio ser isto

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.