Ir para conteúdo

POWERED BY:

Arquivado

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

hcardoso

agrupar registos pelo conteudo de um determinado campo

Recommended Posts

boasimaginem que tenho uma tabela com o nome de pessoas e o nome da cidade onde vivem:id - nome - cidade-------------------------1 - hugo - porto2 - telmo - leiria3 - rui - lisboa4 - joão - porto5 - joel - aveiro6 - pedro - leiriaeu preciso de uma consulta à tabela que me devolva apenas os registos das pessoas que vivem em cidades onde vive mais alguem...neste caso devolveria:1 - hugo - porto4 - joão - porto2 - telmo - leiria6 - pedro - leiriaa questão é que isto tem que ser feito sem ser necessário fornecer o nome das cidades no SQL. a consulta tem que fazer a analise sozinha.alguem me ode ajudar?desde já agradeço a ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom diadesde já obrigado pela ajuda Wagner.utilizei o SQL que elaboras-te e não me foi devolvido nenhum registo.depois agrupei por cidade e foi-me devolvido o primeiro registo de cada cidade pretendida:codigo:SELECT COUNT(*), cidade, id, nomeFROM xtesteGROUP BY cidadeHAVING COUNT(*) > 1ORDER BY 1 ASCresultado:1 - hugo - porto2 - telmo - leiriaou seja, devolveu-me as cidades certas... só falta devolver-me o resto das pessoas dessas cidades

Compartilhar este post


Link para o post
Compartilhar em outros sites

se você deseja que no seu resultado se repita os nomes das cidades

você deve retirar so seu select a clausula GROUP BY cidade

utilizando essa você apenas terá um resultado para cada cidade

Compartilhar este post


Link para o post
Compartilhar em outros sites

boas

 

se eu retirar o GROUP BY cidade

recebo o erro:

Erro na query: SELECT COUNT(cidade), cidade, id, nome FROM xteste HAVING COUNT(cidade) > 1 ORDER BY cidade ASC.Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause

 

como posso dar a volta a isto?

 

desde já obrigado pela ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

boas

 

se eu retirar o GROUP BY cidade

recebo o erro:

Erro na query: SELECT COUNT(cidade), cidade, id, nome FROM xteste HAVING COUNT(cidade) > 1 ORDER BY cidade ASC.Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause

 

como posso dar a volta a isto?

 

desde já obrigado pela ajuda

hehehe...peço desculpas falha minha

como você esta realizando uma conta é necessário que você agrupe, ou seja, use o ORDER BY

porem usando outro campo...exemplo nome

o campo informado no ORDER BY é o campo que será contado

 

mas parece que você deseja obter a quantidade de vezes que a cidade se repte

e ainda mostrar quem possui essa cidade

se for isso, é um trabalho para os especialistas ae no mysql

 

peço desculpas pelo transtorno....eu só queria ajudar.... ^.^

Compartilhar este post


Link para o post
Compartilhar em outros sites

boaseu não pretendo contar registos nenhuns.apenas preciso de uma consulta que me devolva os registos em que há cidades que se repetem noutros registosbrigado pela ajuda

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.