Fórum AGRUPAR E TRAZER NÚMERO LIMITADOS POR GRUPOS #587351

31/10/2017

0

Olá,

Tenho a seguinte questão:
Em uma tabela com os campos: nome, telefone, bairro.
preciso que a query me retorne 5 pessoas de cada bairro.

Obrigado pela ajuda.
José Menezes

José Menezes

Responder

Posts

31/10/2017

Allan Monteiro

Será que assim dá certo? Rs

SELECT
A.NOME,
A.TELEFONE,
A.BAIRRO,
COUNT(A.BAIRRO)

FROM TABELA A

GROUP BY A.NOME,
A.TELEFONE,
A.BAIRRO

HAVING COUNT(A.BAIRRO) = 5;
Responder

Gostei + 0

31/10/2017

José Menezes

Não. desta forma trouxe apenas as mesmas pessoas que moram em 5 bairros diferentes (rs). Eu preciso que me traga cinco pessoas, independente da ordem, pode ser por nome mesmo, mas quero quero cinco pessoas de TODOS os bairros. Assim, se eu tiver 10 bairros, a consulta tem que me retornar 50 pessoas.
Responder

Gostei + 0

05/11/2017

Paulo Santos

Bom dia José, pelo tempo que postou a duvida acredito que já tenha conseguido solucionar.
Mas segue um exemplo.

Pelo que entendi, vc precisa de no máximo 5 pessoas de cada bairro que estão cadastras na mesma tabela, correto?
Se for esse o caso esse exemplo vai te retornar o que precisa, mas se for de tabelas distintas basta alterar a consulta dentro do outer apply que vai funcionar.

SELECT distinct
TBL01.Bairro AS Bairro
,'---' AS [ ]
,TBL02.*
FROM Tabela01 AS TBL01
OUTER APPLY
(
SELECT TOP 05
*
FROM Tabela01 AS TBL_SUB
WHERE TBL01.Bairro = TBL_SUB.Bairro
) AS TBL02

Espero ter ajudado
=)
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar